为什么hasOwnProperty这个属性,不能在ts中查找自身属性呢-ts版本是5.2.2
来源:8-4 类型保护与自定义类型保护

小雨点3545254
2023-11-11
老师您好,为什么hasOwnProperty这个属性,不能在ts中查找自身属性呢
type Person = { username: string } | { age: number };
const foo3 = (n: Person) => {
if (n.hasOwnProperty('username')) {
n.username // 这里报错,飘红了
}
}
let obj = {
username: '张三'
}
let per = foo3(obj);
我的ts版本是5.2.2,这是什么原因,老师能详细的讲解一下吗?
写回答
1回答
-
西门老舅
2023-11-12
你好,对于这种对象字面量,即:let obj = {username: '张三'},TS不允许使用hasOwnProperty作为类型保护,只允许使用in运算符。
type Person = { username: string } | { age: number };
const foo3 = (n: Person) => {
if ( 'username' in n ) {
n.username
}
}
let obj = {
username: '张三'
}
let per = foo3(obj);
00
相似问题
react ts
回答 1
导入key什么意思??
回答 1