2017-08-13 7 views
2

誰も私を説明できません、どうしてこのコードでエラーが発生しないのですか?Typescriptは型にnullを割り当てます。エラーは発生しません

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

interface Animal{ 
    name: string; 
} 

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

のJavaScript(および活字体)でデフォルトではすべてのフィールドがnullまたは未定義の値を持つことができ、[stricktNullCheck](https://github.com/Microsoft/TypeScriptを見て/プル/ 7140)。 –

答えて

3

はあなたがlion: Animal = null;を行う際には、エラーをスローするためにあなたのtsconfig.json"strictNullChecks": trueを設定する必要があります。

documentation for strictNullChecks compiler flagを参照してください:

モードを厳密チェックヌルでは、nullとundefined値は にあらゆる種類のドメインではなく、自分自身と任意の にのみ割り当て可能です(唯一の例外は、その未定義であることvoidに割り当てることもできます)。また

参照:https://ariya.io/2016/10/typescript-2-and-strict-null-checking

+0

それでは、フラグをfalseにするか、またはconstに設定して、const lunchBoxのような構文を使用して最適なオプションを設定してください:Nullable [] = []; – Whisher

+1

これは要件によって異なります。私は個人的に 'strictNullChecks'をオンにし、' variable:Type |ヌルが許される特定の場合には「ヌル」となります。 – Saravana

関連する問題