我有以下typescript
课程,以便从localStorage
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)
}
}
如何在TypeScript中执行类似注释行的操作?
答案 0 :(得分: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 / Scala / C#)中,编译器也无法告诉您是否需要返回字符串或其他对象,因为T只是返回类型您正在使用它来确定要返回的内容。