如何解决流程中的“无法在对象类型上调用构造函数”错误?

理查德

我在弄清楚流程所抱怨的问题时遇到了麻烦。我试图通过存储实现类来允许改变API的实现,然后稍后对其进行实例化,但是,当我打电话new this.implKlass说“不能在对象类型上调用构造函数”时,流程会抱怨流程试图告诉我什么?从概念上讲,流程是如何缺失的?

下面的示例代码,并在此处流尝试代码

/* @flow */

type ApiT = {
    fnA(): Promise<*>; 
}

// An implementation of the API
class Impl {
    async fnA(): Promise<*> { return 1; }
}

class DoThings {
    implKlass: ApiT;
    constructor(klass) {
        this.implKlass = klass; 
    }
    callA() {
        const Klass = this.implKlass;
        const inst = new Klass();
        return inst.fnA();
    }
}

new DoThings(Impl).callA();

输出示例:

18:         const inst = new Klass();
                         ^ constructor call. Constructor cannot be called on
18:         const inst = new Klass();
                             ^ object type
13:     constructor(klass: ApiT) {
                        ^ property `fnA`. Property not found in
23: new DoThings(Impl).callA();
                 ^ statics of Impl
加布·列维(Gabe Levi)

稍作修改,即可使用。

class DoThings {
    implKlass: Class<ApiT>;
    constructor(klass) {
        this.implKlass = klass; 
    }
    callA() {
        const Klass = this.implKlass;
        const inst = new Klass();
        return inst.fnA();
    }
}

错误是您正在编写ApiT而不是Class<ApiT>ApiT将是一个类的实例,Class<ApiT>而是类本身。

尝试流链接

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何解决“ Newtonsoft.Json.JsonSerializationException无法找到要用于类型的构造函数”的Android错误?

如何解决此“无法解析构造函数”错误?

如何在JavaScript中的对象上调用构造函数?

如何解决:(类型错误:“str”对象不可调用)

如何解决Haxe中的“重复构造函数”错误?

如何解决此“在布尔值上调用成员函数row()”错误?

在 null 上调用成员函数 get(),如何解决?

在Java中访问对象函数时如何解决错误?

如何解决此“ TypeError:在对象中找不到函数getTime”?

如何解决它在laravel 5.3中的字符串上调用成员函数diffForHumans()

构造函数原型中新添加的函数在对象上调用时不起作用

在对象上调用匿名函数

Python,在对象上调用传递的函数

如何解决此错误,无法调用类型缺少调用签名的表达式

在对象上调用方法得到“调用数组上的成员函数”错误

在对象上调用函数解析错误:语法错误,意外的“->”(T_OBJECT_OPERATOR)

如何解决外部线程中的“错误 C2712:无法在需要对象展开的函数中使用 __try”?

使用zip()函数时如何解决以下错误?TypeError:“列表”对象不可调用

如何解决声纳静态代码分析错误“在C ++中明确定义缺少的副本构造函数,移动构造函数..”

如何解决无法调用“ DataFrame”对象的计算错误

如何解决带有预编译的Azure函数的“无法从Azure WebJobs SDK调用”错误?

如何解决此问题:LoginController 中构造函数的参数 0 需要一个无法找到的“OktaOAuth2Properties”类型的 bean

如何在对象构造期间在函数中设置属性?

如何解决IIS中的“在ISAPI筛选器“ C \ .. \ php5.dll上调用GetProcAddress”失败”错误?

无法在对话框上执行.hide错误:尝试在空对象上调用虚拟方法

在对象的构造函数中传递对象

如何解决错误:15:错误:无法推断类型参数的PriorityQueue <>中的OpenJDK 1.7.0_95?

如何解决“无法使用类型为(MKMapRect)的参数列表调用类型为'MKMapRect'的初始化程序”的问题,在Swift 5.0中出现错误

类型错误:在对象中找不到函数 getDataRange