Typescript泛型扩展类和接口

戴夫·泰勒

我有一个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属性添加到类中,它将成功

在此处输入图片说明

这也是为什么它与成功,ModelCorrectextends却并不implements

尊严的

看来这是我能找到的唯一方法。不是很干净,但是它做对了。

interface IHasImage extends Model{  
  imageUrl():string; 
}

class Model {
}

class View<T extends IHasImage> {
}

这是操场上的截图,确认它可以正常工作:

操场

编辑:添加了正确的解决方法。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

具有泛型和可比性的接口和类

来自分类Dev

T是类实现接口的泛型

来自分类Dev

接口,泛型和重构

来自分类Dev

JaxB编组通配符泛型扩展类

来自分类Dev

在TypeScript中使用泛型扩展接口

来自分类Dev

Delphi泛型:无法将类和构造函数约束的泛型类型转换为接口

来自分类Dev

泛型扩展和实现

来自分类Dev

Typescript:泛型,使用泛型扩展类型

来自分类Dev

为什么不能扩展接口“泛型方法”并将其类型缩小到继承的接口“类通用”?

来自分类Dev

用泛型T扩展类

来自分类Dev

TypeScript,泛型和instanceof

来自分类Dev

Typescript我如何扩展使用泛型的接口?

来自分类Dev

具有接口类类型的泛型

来自分类Dev

TypeScript,泛型和instanceof

来自分类Dev

具有泛型和Comparable的接口和类

来自分类Dev

接口,泛型和重构

来自分类Dev

如何验证泛型在Java中扩展了另一个类/接口?

来自分类Dev

使用泛型和扩展Abstract类

来自分类Dev

扩展集合泛型类的泛型类

来自分类Dev

使用泛型正确扩展接口

来自分类Dev

Java中的泛型,扩展接口

来自分类Dev

如何正确创建在Java中扩展泛型接口的有界泛型类

来自分类Dev

编写接口作为泛型的扩展

来自分类Dev

如何将泛型类扩展为泛型

来自分类Dev

接口和泛型类约束之间的循环关系

来自分类Dev

打字稿:泛型接口、接口函数和类类型参数

来自分类Dev

Typescript - 使用泛型扩展具有联合类型属性的接口

来自分类Dev

使用非泛型类注册泛型接口

来自分类Dev

创建仅使用字符串键扩展接口的 TypeScript 泛型类型