我们可以使用 TypeScript 中的泛型来声明具有不同参数类型的类属性,并且可以在编译时进行类型检查。下面是一个示例代码:
class MyMap {
private map: {[key: string]: T} = {};
setItem(key: string, value: T) {
this.map[key] = value;
}
getItem(key: string): T {
return this.map[key];
}
clear() {
this.map = {};
}
printMap() {
for (let key in this.map) {
console.log(key, this.map[key]);
}
}
}
const numberMap = new MyMap();
numberMap.setItem('apples', 5);
numberMap.setItem('bananas', 10);
console.log(numberMap.getItem('apples'));
numberMap.printMap();
numberMap.clear();
numberMap.printMap();
const stringMap = new MyMap();
stringMap.setItem('name', 'John');
stringMap.setItem('age', '30');
console.log(stringMap.getItem('name'));
stringMap.printMap();
stringMap.clear();
stringMap.printMap();
以上示例中,我们声明了一个 MyMap
类,对其使用了一个泛型类型 T
,并将一个字符串键(键名)映射到一个 T
类型的值(键值)。然后我们使用 numberMap
和 stringMap
实例来创建不同的实例,并对其进行不同类型的测试。