【发布时间】:2021-12-03 07:31:00
【问题描述】:
这是问题的简化版本。我正在尝试创建一个函数,该函数将在具有Map 属性的接口上进行一般操作。
interface Data {
map1: Map<string, number>;
map2: Map<string, string>;
}
const d: Data = {
map1: new Map(),
map2: new Map(),
};
// This doesn't work
public dataSet<T extends keyof Data, V extends Data[T]... (need help here)>(d: data, dataKey: T, key: string, val: V) {
d[dataKey].set(key, val);
}
// Ideally, called like:
dataSet(d, 'map1', 'alpha', 3);
dataSet(d, 'map2', 'beta', 'charlie');
V的类型定义目前是Map类型而不是Map的值类型。
【问题讨论】:
标签: typescript type-inference typescript-generics