Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.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
Typescript 如何在对象上键入get方法_Typescript - Fatal编程技术网

Typescript 如何在对象上键入get方法

Typescript 如何在对象上键入get方法,typescript,Typescript,我有一个对象,其中包含从get方法访问的值。我想键入get方法,以便它从键推断返回值 我正在使用TS 3.6.2,并且有一个使用重载的工作类型,如下所示: 接口值{ foo:FooType; bar:BarType; baz:baz型; } 接口ObjectWithGetter{ get(键:'foo'):值['foo']; get(键:'bar'):值['bar']; get(键:'baz'):值['baz']; } 看起来我应该能够将重载的get类型压缩成如下内容: get(key: ke

我有一个对象,其中包含从get方法访问的值。我想键入get方法,以便它从键推断返回值

我正在使用TS 3.6.2,并且有一个使用重载的工作类型,如下所示:

接口值{
foo:FooType;
bar:BarType;
baz:baz型;
}
接口ObjectWithGetter{
get(键:'foo'):值['foo'];
get(键:'bar'):值['bar'];
get(键:'baz'):值['baz'];
}
看起来我应该能够将重载的get类型压缩成如下内容:

get(key: keyof Values): Values[key];
但在这种情况下,key是一个变量,它不是有效的类型

有办法做到这一点吗


谢谢。

您需要的是仿制药:

接口ObjectWithGetter{
get(key:K):值[K];
}

引入泛型参数
K
允许您“重复使用”选择正确返回类型的键。

您需要的是泛型:

接口ObjectWithGetter{
get(key:K):值[K];
}
引入通用参数
K
允许您“重复使用”键来选择正确的返回类型