【发布时间】:2019-11-01 22:58:09
【问题描述】:
我有这个界面:
interface Api {
state: Converter<State>;
water: Converter<Water>;
version: Converter<Versions>;
}
我有一个名为write的函数
write(name, value);
现在我想要实现的是 value 的类型应该是 Converter 的泛型,具体取决于第一个参数 (name)。
所以如果我打电话给write("state", value) -> value 应该是State。 "water" 和 "version" 也是如此。
write("state, value); // value should be type of State
write("water", value); // value should be type of Water
write("version", value); // value should be type of Versions
我这样实现了第一个参数:
write(name: keyof Api, value: ???)
我发现我可以像这样得到keyof Api的对应值:
write<K extends keyof Api>(name: K, value: Api[K])
但这给了我Converter<State> 为"state"。有没有办法可以访问Converter 中的泛型?
【问题讨论】:
标签: typescript generics typescript-typings typescript-generics