我有一个Typescript类,其中包括一个泛型,需要扩展另一个类并实现一个接口。这是一个例子
interface IHasImage {
imageUrl():string;
}
class Model {
}
class View<T extends Model & IHasImage> {
}
这是我在其他地方看到的那种语法,但是在Typescript中有没有办法做到这一点?
编辑:尝试将以下内容粘贴到游乐场:http : //www.typescriptlang.org/Playground
...[removed edit 1 code]
编辑2:答案和推理
(很抱歉,第一个示例有一些缺陷!)我在下面标记了正确的答案,尽管它可能需要一些指针,如本github问题中所述(https://github.com/Microsoft/TypeScript/issues/1885)
给定以下代码,您可以看到该方法有效。
唯一要说的是,implement
从不扩展基类的类尝试接口也将失败。但是,因为Typescript检查基于对象的结构,所以如果您手动将name
属性添加到类中,它将成功。
这也是为什么它与成功,ModelCorrect
这extends
却并不implements
。
看来这是我能找到的唯一方法。不是很干净,但是它做对了。
interface IHasImage extends Model{
imageUrl():string;
}
class Model {
}
class View<T extends IHasImage> {
}
这是操场上的截图,确认它可以正常工作:
编辑:添加了正确的解决方法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句