假设我有通用函数:
function f<T, K extends keyof T>(obj: T, key: K) {
...
}
Run Code Online (Sandbox Code Playgroud)
我想强制执行类型,T[K]以便我可以执行特定于类型的操作。例如,使用字符串:
function f<T, K extends keyof T>(obj: T, key: K): string {
return obj[key].toLowerCase();
}
Run Code Online (Sandbox Code Playgroud)
如果不把东西扔到 ,这完全可能any吗?
编辑: 为了澄清,我正在寻找基于结果类型禁止某些键的能力。使用上面的示例,类似于:
f({a: 123, b: 'abc'}, 'b') //No errors
f({a: 123, b: 'abc'}, 'a') //Typescript error, T['a'] is not string
Run Code Online (Sandbox Code Playgroud)