我有一个有趣的问题。代码如下:
type Person = {
name: string | null,
age: number | null,
contacts: {
phone: number | null,
email: string | null
} | null
}
const emptyPerson: Person = {
name: null,
age: null,
contacts: null
}
// should warn that `contacts` can be `null`, but it's not
console.log(emptyPerson.contacts.email)
似乎TS是缩小型,但为什么?
我在TypeScript Playground中尝试了同样的代码,它工作得很好。
所以我的问题是为什么TS退出null
,以及如何防止这种奇怪的行为?
1条答案
按热度按时间8ulbf1ek1#
正如VLAZ评论的那样,问题出在
strictNullChecks
选项中,将其设置为true
解决了问题。