【发布时间】:2018-05-15 05:03:48
【问题描述】:
我正在尝试使用受约束的泛型参数声明一个 TypeScript 类。在 C# 中,将编译以下代码:
public class NewClass<T> where T: BaseClass {
}
什么是 TypeScript 等价物?
【问题讨论】:
标签: typescript
我正在尝试使用受约束的泛型参数声明一个 TypeScript 类。在 C# 中,将编译以下代码:
public class NewClass<T> where T: BaseClass {
}
什么是 TypeScript 等价物?
【问题讨论】:
标签: typescript
对于作为基础的类和接口,您必须像这样约束T:
export class NewClass<T extends BaseClass> {
}
虽然您从带有implements 的接口派生类,但对于泛型约束却不是这样,这使得这段代码成为可能:
export class NewClass<T extends BaseInterface> implements BaseInterface {
}
【讨论】:
您正在寻找extends 关键字。您可以在泛型参数之后使用它来将其约束为指定类型的子类型。
所以你的例子相当于:
class NewClass<T extends BaseClass> {
// Things...
}
您可以在documentation here 中阅读有关通用约束的更多信息。
【讨论】: