打字稿排除类型中的空值

时间:2018-09-11 08:00:57

标签: typescript

class Foo<T = null> {
    add<U>() {
        return this as any as Foo<T extends null ? U : T & U>;
    }

    test(v: T) {
    }
}

const foo = new Foo;
foo.test(null);
foo.add<{value: string}>().test(null); // wrong
foo.add<{value: string}>().test({value: 'string'});

foo.test仍然可以在最后一行中使用null作为参数。

检查T extends null等于T的{​​{1}}条件是否错误? 正确的方法是什么?

1 个答案:

答案 0 :(得分:0)

将选项添加到tsconfig.js

{
    "compilerOptions": {
        "strictNullChecks": true
    }
}