Javascript 如何在流中定义类变量,以便它扩展另一种类型? /@flow 课堂演示{ 错误:错误 构造函数(){ this.SomeError=类扩展了错误{ 构造函数(消息:string){ 超级(讯息) this.name='SomeError' } } } }

Javascript 如何在流中定义类变量,以便它扩展另一种类型? /@flow 课堂演示{ 错误:错误 构造函数(){ this.SomeError=类扩展了错误{ 构造函数(消息:string){ 超级(讯息) this.name='SomeError' } } } },javascript,flowtype,Javascript,Flowtype,我一直在尝试做类似的事情。但是流给出了一个错误:无法将'class{…}'分配给'this.SomeError',因为类'[1]与'error'不兼容。。对于我来说,将类变量写为以下内容是一个暂时的、丑陋的解决方案: /。。。 ErrorClass:对象 // ... 我不明白为什么它接受对象作为类型,但不接受错误。这个问题有解决方案吗?这是因为:Error表示类Error的实例,而不是类本身/构造函数。要获取构造函数类型,可以使用typeof运算符: class Demo { Som

我一直在尝试做类似的事情。但是流给出了一个错误:
无法将'class{…}'分配给'this.SomeError',因为类'[1]与'error'不兼容。
。对于我来说,将类变量写为以下内容是一个暂时的、丑陋的解决方案:

/。。。
ErrorClass:对象
// ...

我不明白为什么它接受对象作为类型,但不接受错误。这个问题有解决方案吗?

这是因为
:Error
表示类
Error
的实例,而不是类本身/构造函数。要获取构造函数类型,可以使用
typeof
运算符:

class Demo {
    SomeError: typeof Error
  
    constructor() {
        this.SomeError = class extends Error {
            constructor(message: string) {
                super(message)
                this.name = 'SomeError'
            }
        }
    }
}


另一种选择是使用实用程序

给定表示类
C
实例的类型
T
,类型
class
就是类
C

类演示{
一些错误:类
构造函数(){
this.SomeError=类扩展了错误{
构造函数(消息:string){
超级(讯息)
this.name='SomeError'
}
}
}
}

这是因为
:Error
表示类
Error
的实例,而不是类本身/构造函数。要获取构造函数类型,可以使用
typeof
运算符:

class Demo {
    SomeError: typeof Error
  
    constructor() {
        this.SomeError = class extends Error {
            constructor(message: string) {
                super(message)
                this.name = 'SomeError'
            }
        }
    }
}


另一种选择是使用实用程序

给定表示类
C
实例的类型
T
,类型
class
就是类
C

类演示{
一些错误:类
构造函数(){
this.SomeError=类扩展了错误{
构造函数(消息:string){
超级(讯息)
this.name='SomeError'
}
}
}
}

你太棒了。谢谢另外,添加
Class
new():T
的别名。你真了不起。谢谢另外,添加
Class
new():T
的别名。