TS 如何根据某个变量是否存在来约束另一个变量的类型?-灵析社区

M78的社畜

**场景再现:** 由于我们 app 版本更新,有一个获取系统状态的函数进行了重构,为了兼容这个函数,我是这样设计代码的。(下面只是模拟场景的伪代码) ///老代码 返回一个 number 类型的1 function oldFn(){ return 1 } ///新代码 返回一个 sting 类型的 "1" function newFn(){ return "1" } 我在使用的地方是这样兼容的 function getVersion(){ if(newFn){ newFn() } else{ oldFn() } } const appVersion =getVersion() 此时我的 `appVersion` 就是 `string|number`类型的值。我之前在用到版本信息判断的地方就需要大改 之前 if(appVersion===1){do something} 现在 if(appVersion===1||appVersion==="1"){do something}) 有没有什么好的建议或者 TS 类型断言来帮我简化这些地方呢?

阅读量:16

点赞量:0

问AI
周舟莫UI设计
直接统一成string function getVersion() { return `${(newFn ?? oldFn)()}` } if (appVersion === '1') { do something }