【发布时间】:2023-01-11 16:49:17
【问题描述】:
我在为常量定义值时遇到了问题。尽管指定了类型,但 Typescript 不会抛出错误,我认为它应该抛出错误。我准备了一个代码来展示我的问题。 我认为第 14 行应该报告为错误,因为缺少“valueN”属性。
//example
type TT = string | {string_:'S', valueS:string} | {number_:'N', valueN:number};
function run(p:TT):number{
if(typeof p === 'string'){
throw '';
}
if('number_' in p){
return p.valueN;
}
throw '';
}
const C:TT = {number_:'N',string_:'S',valueS:'text'};
console.log(run(C));
有人可以向我解释为什么 TS 会这样吗,以及如何改进代码以便第 14 行报告缺少属性的错误。
【问题讨论】:
标签: typescript