类型'undefined'无法转换为'T'类型

时间:2017-10-07 07:21:12

标签: typescript

块中有问题 - “类型'未定义'无法转换为类型'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]);
    }
} 

2 个答案:

答案 0 :(得分:4)

您只需将其转换为any即可绕过类型检查:

this.map[key] = undefined as any;

答案 1 :(得分:0)

Tundefined是不同的类型。

您只需使用delete this.map[key]删除该条目。