网站搜索

javascript - 如何获取接口中已定义对象属性的类型但值为 undefined


我正在尝试转换在接口中定义的可未定义的对象属性。

interface activity {

     activityId:number | undefined
}

var obj:activity ={activityId:undefined};

console.log( typeof obj.activityId) ;

//output: "undefined"
Expected behaviour : "number"

答案#1

这按预期工作,如您接口中指定,activityId 可以是 number 或 undefined。

在你的情况下,你将其声明为 undefined,当你运行 typeof 时,activityId 实际上是 undefined。当你运行:

const obj: activity = { activityId: 0 };
console.log(typeof obj.activityId) ;

它会在控制台显示 number。

`typeof` 是纯 JavaScript,它不能显示所有可能的类型。