【发布时间】:2019-03-21 02:56:39
【问题描述】:
在 typescript 中,可以声明一个函数,该函数需要一个类型及其一个键作为参数:
function foo<T, K extends keyof T>(object: T, key: K)
在函数体中,您可以获取或设置object 的键值,甚至提取键的类型(T[k]):
function setter<T, K extends keyof T>(object: T, key: K){
return (value: T[K]) => {
obj[key] = value;
};
}
function logger<T, K extends keyof T>(object: T, key: K){
console.log(obj[key]);
}
问题:
是否可以有泛型类型K 和extends keyof T 并且是一个数组?
(换句话说:K 必须是数组和T 类型的键)
示例用例:
function lengthLogger<T, K /*extends keyof T and is array*/>(object: T, key: K){
console.log(object[key].length)
}
【问题讨论】:
标签: function typescript generics