【发布时间】:2018-03-29 19:17:13
【问题描述】:
我的流类型如下所示:
type ModalTypes{
id: number,
name: string
}
我想继承我的类的类型定义并在构造函数中重用它:
class Modal extends ModalTypes {
constructor(data: ModalTypes) {
super()
this.id = data.id
this.name = data.name
}
}
很遗憾,这不起作用。我知道我只能扩展一个类,但是如何向我的类添加一些类型定义。
我不想写这样的重复代码:
class Modal{
id: number
name: string
constructor(data: {id: number, name: string}) {
super()
this.id = data.id
this.name = data.name
}
}
这里我添加了两次id 和name,一次添加到 Modal 类,一次添加到构造函数。
我只想添加一次并防止重复。
【问题讨论】:
-
类型只是编译器的东西。类是转译代码的一部分。因此,您不能将类型用作超类,因为它们不存在于代码中。
-
不要继承以防止重复属性,即继承滥用恕我直言。恕我直言,如果 Modal is ModalType,那么应该驱动继承。如果是,那么继承是有意义的,但如果不是,则不要继承。
-
是的,对@Nope,我不需要继承。但我想使用相同的类型而不在类和构造函数中定义它们。我想在一个地方定义它们。
标签: javascript reactjs flowtype