知道如何实现这一目标吗?
function getTest<T>(): T["test"] {
// ...
}
...或动态:
function getTest<T, U>(): T[U] {
// ...
}
不幸的是,编译器说Type '“test”' cannot be used to index type 'T'
。我正在使用TypeScript 2.4.2。
答案 0 :(得分:2)
请注意,要使类型推断起作用,您需要将参数传递给使用一个或多个泛型类型参数的函数。
否则,它将被推断为{}
或any
。
对于第一种情况:
function getTest<T, U extends {test: T}>(): T {}
对于第二种情况:
function getTest<T, K extends keyof T>(): T[K] {}