【发布时间】:2021-06-16 19:33:25
【问题描述】:
我有一个将字符串解析为值的函数,如果失败则返回defaultValue。问题是这段代码返回的原始类型过于严格(例如false 而不是boolean)。我该如何解决?也许我应该为defaultValue 使用一些演员表?谢谢
export function safeParse<T>(text: string, defaultValue?: T): T | undefined {
try {
return JSON.parse(text);
} catch {
return defaultValue; // some cast here?
}
}
const res1 = safeParse('128', 0); // typeof res1 is '0 | undefined'
const res2 = safeParse<number>('128', 0); // OK: typeof res2 is 'number | undefined'
const res3 = safeParse('128', 0 as number); // OK: typeof res3 is 'number | undefined'
【问题讨论】:
标签: typescript types casting