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}}条件是否错误?
正确的方法是什么?
答案 0 :(得分:0)
将选项添加到tsconfig.js
{
"compilerOptions": {
"strictNullChecks": true
}
}