变量/字段声明中的泛型类型约束

时间:2018-02-12 16:05:25

标签: typescript generics

假设我们有一个通用接口:

export interface IKeyValue<K, V> {
    key: K;
    value: V;
}

现在,我们要声明一个变量/字段,并限制哪些类型可以用作KV

public items: IKeyValue<K extends Type1, V extends Type2>[];

上面的代码无法编译。

我正在使用TypeScript 2.6。

我们如何在TypeScript中实现它?

1 个答案:

答案 0 :(得分:0)

那是因为你没有提供定义而是提供实例。

public items: IKeyValue<Type1, Type2>[];

...是有效的语法。

如果要限制定义(界面),则可以提供extends:

export interface IKeyValue<K extends Type1, V extends Type2> {
    key: K;
    value: V;
}