2017-07-18 18 views
0

我有以下typescript類,擺脫localStorage在TypeScript泛型方法中將變量轉換爲T?

export class LocalStorageHelper { 
    public static GetItemValue<T>(key: string): T { 
     let value: string = localStorage.getItem(key); 
     // if(typeof T == 'string') return value; 
     // return (Convert JSON.parse(value) To T) 
    } 
} 

我怎麼可以這樣做的打字稿註釋行模式?

回答

1

TypeScript get的編譯爲JS,所以在運行時沒有類型,因此在這裏你不能做任何事情,比如typeof T。你需要傳遞你想要返回的對象的類型。在你的情況下,我會有兩個單獨的方法,一個用於檢索字符串,另一個用於將其解析爲JSON。

export class LocalStorageHelper { 
    public static GetItemValueString(key: string): string { 
     let value: string = localStorage.getItem(key); 
     return value; 
    } 
    public static GetItemValue<T>(key: string): T { 
     let value: string = localStorage.getItem(key); 
     return JSON.parse(value) as T; 
    } 
} 

我還要指出的是,即使在強類型語言(如Java /斯卡拉/ C#)編譯器也不會告訴無論您想串或其他物體的任何方式進行退換,爲T只是一個您正在使用的返回類型來確定要返回的內容。

相關問題