类型'“test”'不能用于索引类型'T'

时间:2017-08-07 11:45:35

标签: typescript

知道如何实现这一目标吗?

function getTest<T>(): T["test"] {
    // ...
}

...或动态:

function getTest<T, U>(): T[U] {
    // ...
}

不幸的是,编译器说Type '“test”' cannot be used to index type 'T'。我正在使用TypeScript 2.4.2。

1 个答案:

答案 0 :(得分:2)

请注意,要使类型推断起作用,您需要将参数传递给使用一个或多个泛型类型参数的函数。

否则,它将被推断为{}any

对于第一种情况:

function getTest<T, U extends {test: T}>(): T {}

对于第二种情况:

function getTest<T, K extends keyof T>(): T[K] {}