【问题标题】:Typescript: calling static methods in constructor [duplicate]打字稿:在构造函数中调用静态方法[重复]
【发布时间】:2021-07-22 23:45:33
【问题描述】:

这是我的课程的一个示例,其中包含有问题的方法

class Example {
    constructor(info) {
        // call validateInfo(info)
    }

    static validateInfo(info):void {
        // validate the info
    }

我想在构造函数中调用 validateInfo,但我不能只使用 this.validateInfo(info) 来执行此操作,因为它是一个静态方法。

在 Javascript 中,我可以这样做:

    constructor(info) {
        this.constructor.validateInfo(info)
    }

但是,在 Typescript 中,这会产生以下错误:

error TS2339: Property 'validateInfo' does not exist on type 'Function'.

我了解错误消息,但是否有与 Javascript 解决方案等效的 Typescript?

【问题讨论】:

    标签: javascript typescript oop static-methods


    【解决方案1】:

    问题是子类可能调用了构造函数,而不是Example。我会特别参考Example

    constructor(info) {
        Example.validateInfo(info)
    }
    

    另一个需要考虑的选择是将其设为普通方法而不是静态方法。

    【讨论】:

      猜你喜欢
      • 2016-08-28
      • 2015-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多