2017-10-07 2 views
0

Haben Problem in Block mit - Fehler in "Typ 'undefined' kann nicht 'T' zu geben umgewandelt werden":Type 'undefined' kann nicht auf den Typ umgewandelt werden 'T'

removeItem(key: string) { 
    this.map[key] = undefined as T ; } 

// Code

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]); 
    } 
} 

Antwort

0

T und undefined sind verschiedene Arten.

Sie sollten einfach delete this.map[key] verwenden, um den Eintrag zu entfernen.

1

Sie können einfach zu any gegossen, die die Typprüfung umgehen wird:

this.map[key] = undefined as any; 
Verwandte Themen