使用isNull时,TypeScript编译器会抱怨为空

时间:2020-05-29 05:21:13

标签: angular typescript visual-studio-code

当我在tsconfig.json中有strictNullChecks: true并使用isNull进行空检查时,编译器将引发错误TS2531: Object is possibly 'null'isNull摆脱了VsCode中的错误,但是当我尝试构建和运行Angular应用程序时,编译器仍然会抱怨。如果我使用=== null进行空检查,则没有错误。

是否有一种方法可以告诉编译器将isNull视为有效的null检查?

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 :(得分:0)

从节点v4开始不推荐使用

isNull。

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

只需使用s === null。够了。

答案 1 :(得分:0)

是的,isNull()函数已被弃用,但是如果您已经在代码中多次使用过isNull()函数,并且不想在任何地方进行更改,则只需创建自己的函数isNull()即可。使用该功能。

function isNull(object:any){
           if(object === null){
               return true 
               }
           else {
               return false
               }
           }