null 和 undefined
- TypeScript 具有两种特殊的类型,
null
和undefined
,它们分别具有值null
和undefined
- 默认情况下我们可以将
null
和undefined
赋值给任意类型
let value1: null;
let value2: undefined;
let value3: number;
value3 = value1;
value3 = value2;
- 默认情况下
null
和undefined
也可以相互赋值
let value1: null;
let value2: undefined;
value1 = value2;
value2 = value1;
注意点
- 在企业开发中, 如果不想把
null
和undefined
赋值给其它的类型 - 或者不想让
null
和undefined
相互赋值, 那么我们就可以修改tsconfig.json
开启strictNullChecks
开启了之后再次赋值效果如下:
- 如果开启了
strictNullChecks
, 还想把null
和undefined
赋值给其它的类型 - 那么就必须在声明的时候使用
联合类型
let value: (number | null | undefined);
value = null;
value = undefined;
console.log(value);
- 对于
可选属性
和可选参数
而言, 如果开启了strictNullChecks
, 那么默认情况下数据类型就是联合类型
- 就是当前的类型 +
undefined
类型
class Person {
name?: string
}
function say(age?: number) {
}
let person = new Person();
person.name = null;
person.name = undefined;
say(undefined);
say(null);