Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 强制下一个接口键与上一个键具有相同的类型_Javascript_Typescript_Types - Fatal编程技术网

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

Javascript 强制下一个接口键与上一个键具有相同的类型,javascript,typescript,types,Javascript,Typescript,Types,我能否以某种方式强制X.b与X.a具有相同的类型 例如: interface X { a: any; b: the same as a; } fun({a:'text',b:'otherText'})我想你要找的是一种叫做泛型的东西 例如 接口X{ a:T; b:T; } 功能乐趣(数据:X){ } 乐趣({a:“abc”,b:“一”})//好啊 乐趣({a:abc,b:false})//失败 我想你要找的是一种叫做泛型的东西 例如 接口X{ a:T; b:T; } 功能乐趣(数据:X){

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

例如:

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

fun({a:'text',b:'otherText'})
我想你要找的是一种叫做泛型的东西

例如

接口X{
a:T;
b:T;
}
功能乐趣(数据:X){
}
乐趣({a:“abc”,b:“一”})//好啊
乐趣({a:abc,b:false})//失败

我想你要找的是一种叫做泛型的东西

例如

接口X{
a:T;
b:T;
}
功能乐趣(数据:X){
}
乐趣({a:“abc”,b:“一”})//好啊
乐趣({a:abc,b:false})//失败

嗯,我知道泛型接口,但事实上,我有一个比上述示例更复杂的对象。a和b是深度嵌套的,我不想强制转换整个接口:\@elzoy发布了一个更完整的示例,否则Keith的回答是对你问题最明显的回答。我知道泛型接口,但事实上,我有一个比上述示例更复杂的对象。a和b是深度嵌套的,我不想转换整个界面:\@elzoy发布了一个更完整的示例,否则Keith的回答是对您的问题最明显的回答。
fun(data: X) {
   ...
}
interface X<T> {
 a: T;
 b: T;
}

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

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