首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Typescript:将严格的原始类型强制转换为原始类型

Typescript:将严格的原始类型强制转换为原始类型
EN

Stack Overflow用户
提问于 2021-03-19 19:33:38
回答 1查看 49关注 0票数 0

我有一个将字符串解析为值的函数,如果失败则返回defaultValue。问题是这段代码对原语返回的类型过于严格(例如,false而不是boolean)。我怎么才能修复它?也许我应该为defaultValue使用一些演员阵容?谢谢

代码语言:javascript
复制
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'
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-19 23:39:42

也许它会很有用

代码语言:javascript
复制
type StrictType<T> = T extends number
    ? number
    : T extends string
        ? string
        : T extends boolean
            ? boolean
            : T


export function safeParse<T>(text: string, defaultValue?: StrictType<T>): StrictType<T> | undefined {
  try {
    return JSON.parse(text);
  } catch {
    return defaultValue; // some cast here?
  }
}

const res1 = safeParse('128', 0); // typeof res1 is 'number | undefined'
const res2 = safeParse('true', false); // typeof res2 is 'boolean | undefined'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66707372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档