有人可以解释一下,为什么这段代码不会触发错误?
import { Injectable } from '@angular/core';
interface Animal{
name: string;
}
@Injectable()
export class AnimalService {
lion: Animal = null;
constructor() {}
get(){
return this.lion;
}
}
答案 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
并使用特定案例。