Moh*_*yan 2 type-conversion typescript
我有以下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)
}
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能在 TypeScript 中做类似注释行的事情?
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;
}
}
Run Code Online (Sandbox Code Playgroud)
我还要指出的是,即使在强类型语言(如 Java/Scala/C#)中,编译器也没有任何方式告诉您是否想要返回字符串或另一个对象,因为 T 只是您用来返回的返回类型确定返回什么。
| 归档时间: |
|
| 查看次数: |
4617 次 |
| 最近记录: |