Компилятор TypeScript жалуется на значения NULL при использовании isNull - PullRequest
0 голосов
/ 29 мая 2020

Когда у меня есть strictNullChecks: true в tsconfig. json и я использую isNull для нулевых проверок, компилятор выдает ошибку TS2531: Object is possibly 'null'. isNull избавляется от ошибки в VsCode, но компилятор по-прежнему жалуется, когда я пытаюсь собрать и запустить приложение Angular. Если я использую === null для нулевых проверок, ошибок нет.

Есть ли способ указать компилятору уважать isNull как действительную нулевую проверку?

import { isNull } from "util"; // from @types/node
    ...

    public run() {
        this.printS("hello");
        this.printS(null);
    }

    public printS(s: string | null) {
        if (isNull(s)) {
            console.log("s is null");
            return;
        }
        console.log("s is not null: ", s.toString()); // error on this line
    }
"typescript": "~3.2.2"
"@types/node": "~8.9.4",

Ответы [ 2 ]

0 голосов
/ 29 мая 2020

Да, функция isNull () устарела, но если вы уже много раз использовали функцию isNull () в своем коде, и если вы не хотите изменять их везде, вы можете просто создать свою собственную функцию с именем isNull () и используйте эту функцию.

function isNull(object:any){
           if(object === null){
               return true 
               }
           else {
               return false
               }
           }
0 голосов
/ 29 мая 2020

isNull устарел, так как node v4.

    /** @deprecated since v4.0.0 - use `value === null` instead. */
    function isNull(object: any): object is null;

просто используйте s === null. Хватит.

...