场景描述
通过 keys
、map
参数,运算出list
。
const keys = ['a', 'b'];
const map = {
a: 1,
b: 2,
c: 3,
};
const list = getListFromMap(keys, map);
//list结果应为:
// [1, 2]
相关代码
interface IMap<T> {
[props: string]: T;
}
export function getListFromMap<T>(keys: string[], map: IMap<T>) {
let resault: T[] = [];
if (!keys || !keys.length) {
return resault;
}
for (const key of keys) {
if (map[key]) {
resault.push(map[key])
}
}
return resault;
}
问题描述
关于typescript
方面,目前存在的问题是:getListFromMap
函数的参数keys
得类型跟参数map
的类型没有形成约束关系。
期望效果
keys
数组里每一个值都一定得是map
的key
值,用泛型约束或其他方法,可以通过TS静态检查出来。