Generics Typescript:泛型类型使用Extends关键字而不是带有接口的实现

Generics Typescript:泛型类型使用Extends关键字而不是带有接口的实现,generics,typescript,Generics,Typescript,据我所知,对象可以实现接口,对象可以扩展类 但是,当使用泛型类型时,必须使用extends来说明对象必须实现接口 例: 接口测试{ a:数字; } 函数myF1(a:U){}//有效 函数myF2(a:U){}//错误 这种不一致有什么原因吗?使用实现对我来说更有意义 对象可以实现接口,对象可以扩展类 类可以实现接口,类可以扩展类。接口还可以扩展接口(即类型可以扩展类型),这与扩展其他类的类一致。这就是这里发生的事情:当你写U扩展ITest时,你是说泛型类型U扩展了类型ITest 此外,在Ty

据我所知,对象可以实现接口,对象可以扩展类

但是,当使用泛型类型时,必须使用
extends
来说明对象必须实现接口

例:

接口测试{
a:数字;
}
函数myF1(a:U){}//有效
函数myF2(a:U){}//错误
这种不一致有什么原因吗?使用
实现
对我来说更有意义

对象可以实现接口,对象可以扩展类

类可以实现接口,类可以扩展类。接口还可以扩展接口(即类型可以扩展类型),这与扩展其他类的类一致。这就是这里发生的事情:当你写
U扩展ITest
时,你是说泛型类型
U
扩展了类型
ITest

此外,在TypeScript中,定义类时:

class Foo {}
…您实际上指定了两件事:第一,您说您需要一些代码(标准构造函数),第二,您指定了一个名为
Foo
的类型,您可以将它当作一个接口来使用,因为它实际上就是这样的。(在某种意义上,类只是一个接口加上一些代码。)

对象可以实现接口,对象可以扩展类

类可以实现接口,类可以扩展类。接口还可以扩展接口(即类型可以扩展类型),这与扩展其他类的类一致。这就是这里发生的事情:当你写
U扩展ITest
时,你是说泛型类型
U
扩展了类型
ITest

此外,在TypeScript中,定义类时:

class Foo {}

…您实际上指定了两件事:第一,您说您需要一些代码(标准构造函数),第二,您指定了一个名为
Foo
的类型,您可以将它当作一个接口来使用,因为它实际上就是这样的。(在某种意义上,类只是一个接口加上一些代码。)

如果可以的话,加上两个。非常清楚。如果可以的话,再加上两个。表达得很好。