TypeScript-null和undefined

null 和 undefined

  • TypeScript 具有两种特殊的类型,nullundefined,它们分别具有值 nullundefined
  • 默认情况下我们可以将 nullundefined 赋值给任意类型
let value1: null;
let value2: undefined;

let value3: number;
value3 = value1;
value3 = value2;
  • 默认情况下 nullundefined 也可以相互赋值
let value1: null;
let value2: undefined;

value1 = value2;
value2 = value1;

注意点

  • 在企业开发中, 如果不想把 nullundefined 赋值给其它的类型
  • 或者不想让 nullundefined 相互赋值, 那么我们就可以修改 tsconfig.json 开启 strictNullChecks

image-20211202224442227

开启了之后再次赋值效果如下:

image-20211203105547110

  • 如果开启了 strictNullChecks, 还想把 nullundefined 赋值给其它的类型
  • 那么就必须在声明的时候使用 联合类型
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);
posted @ 2021-12-02 22:51  BNTang  阅读(462)  评论(0编辑  收藏  举报