我有一个Typescript类,其中包含一个需要扩展另一个类并实现接口的泛型。 这是一个示例
interface IHasImage {
imageUrl():string;
}
class Model {
}
class View<T extends Model & IHasImage> {
}
我在其他地方看到过这种语法,但在Typescript中有没有一种方法可以做到这一点?
编辑: 尝试将以下内容粘贴到Playground中:http://www.typescriptlang.org/Playground
...[removed edit 1 code]
编辑2:答案和推理
对不起,第一个例子有一些缺陷! 我已经标记了正确的答案,尽管它可能需要一些提示,如此github问题所述(https://github.com/Microsoft/TypeScript/issues/1885)
给定以下代码,您可以看到方法论是有效的。
唯一要说的是,试图从不扩展基类的类中实现
接口也会失败。但是由于Typescript检查是基于对象结构的,如果您手动将name
属性添加到类中,则会成功。
这也是为什么ModelCorrect
可以成功扩展
但不实现
的原因。