强制下一个接口键与前一个键具有相同的类型

时间:2018-03-09 13:45:30

标签: javascript typescript types

interface X {
 a: any;
 b: the same as a;
}

我能否以某种方式强制X.bX.a具有相同的类型?

一个例子:

fun(data: X) {
   ...
}

fun({a: 'text', b: 'otherText'})< - 很好,因为b的字符串类型为afun({a: 'text', b: false})< - 错误,因为ba类型不匹配。

1 个答案:

答案 0 :(得分:2)

我认为你所寻找的东西叫做泛型。

例如

interface X<T> {
 a: T;
 b: T;
}

function fun(data: X<string>) {
}

fun({ a: "abc", b: "one" }); //ok
fun({ a: "abc", b: false }); //fail