0
有沒有一種方法來指定某些行爲如此所示?typescript通用函數索引約束
function fn<T, U extends keyof T, T[U] extends number>()
我無法獲得「T [U]擴展數字」部分的工作。
有沒有一種方法來指定某些行爲如此所示?typescript通用函數索引約束
function fn<T, U extends keyof T, T[U] extends number>()
我無法獲得「T [U]擴展數字」部分的工作。
這個怎麼樣?
function fn<T extends Record<U, number>, U extends keyof T>(t: T, u: U): number {
return t[u];
}
通過說T extends Record<U, number>
你基本上是說,T[U]
存在且number
型(或亞型)的:
fn({ name: 'fred', age: 40 }, 'age'); // okay
fn({ name: 'fred', age: 40 }, 'name'); // error
fn({ name: 'fred', age: 40 }, 'oops'); // error
這是否對你的工作?