null
和 undefined
都有各自的类型名称。这些类型本身没有用处,因为我们只能将 null
和 undefined
赋值给定义为 null
或 undefined
类型的变量。
let u: undefined = undefined
u = 'string' // compile error
let n: null = null
n = 43 //compile error
默认情况下,null
和 undefined
是所有类型的子类型。 就是说可以把 null
和 undefined
赋值给 number
类型的变量。
let value: string | undefined | null = null
value = 'hello'
value = undefined
注意:默认情况下,将禁用
null
和undefined
处理,我们可以通过在tsconfig.json
文件将strictNullChecks
设置为true
来启用。当启用strictNullChecks
时,本文的示例才能正常运行。