ser*_*0ne 5 generics generic-constraints typescript
我extends在 TypeScript 中使用约束,如下所示:
class Animal {}
class Lion extends Animal {}
class Bear extends Animal {}
class ZooKeeper<T extends Animal> {
constructor(p: T = new Animal()) {
}
}
new ZooKeeper(new Animal());
Run Code Online (Sandbox Code Playgroud)
但p: T = new Animal()包含一个错误:
“动物”类型不能分配给“T”类型。
构造函数 Animal(): 动物
为什么,我该怎么做,以便我可以使用Animal, 代替Animal子类型?
将你的动物投向T,它就会起作用。
class ZooKeeper<T extends Animal> {
constructor(p: T = <T>new Animal()) {
}
}
Run Code Online (Sandbox Code Playgroud)
根据您自己的评论(对于未来的读者)您还可以这样做:
class ZooKeeper<T extends Animal> {
constructor(p: T = new Animal() as T) {
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3480 次 |
| 最近记录: |