Typescript为类型赋值null不会触发错误

时间:2017-08-13 08:29:19

标签: angular typescript

有人可以解释一下,为什么这段代码不会触发错误?

import { Injectable } from '@angular/core';

interface Animal{
  name: string;
}

@Injectable()
export class AnimalService {
  lion: Animal = null;
  constructor() {}
  get(){
   return this.lion;
 }
}

2 个答案:

答案 0 :(得分:3)

您必须在"strictNullChecks": true中设置tsconfig.json,以便在执行lion: Animal = null;时抛出错误。

请参阅documentation for strictNullChecks compiler flag

  

在严格空检查模式下,不包含null和undefined值   每种类型的域名,只能分配给自己和任何类型   (唯一的例外是undefined也可赋予void)。

另见:https://ariya.io/2016/10/typescript-2-and-strict-null-checking

答案 1 :(得分:0)

在允许空值的特定情况下使用 variable: Type | null

例如:name:string| null

我个人打开 strictNullChecks 并使用特定案例。