块中有问题 - “类型'未定义'无法转换为类型'T'”错误:
removeItem(key: string) {
this.map[key] = undefined as T ; }
//代码
class PrintMap <T> {
private map : { [key: string] : T } = {};
setItem(key : string, item : T) {
this.map[key] = item;
}
getItem(key : string) {
return this.map[key];
}
clear() {
this.map = {};
}
removeItem(key: string) {
this.map[key] = undefined as T ;
}
print() {
for (let key in this.map) {
console.log(key , this.map[key]);
}
}
答案 0 :(得分:4)
您只需将其转换为any
即可绕过类型检查:
this.map[key] = undefined as any;
答案 1 :(得分:0)
T
和undefined
是不同的类型。
您只需使用delete this.map[key]
删除该条目。