我目前正在将大型 TypeScript 代码库转换为严格的空检查。代码库有许多带有可选成员的类型:
interface MyInterface {
member1?: number;
member2?: string;
}
此外,它使用 type Nullable<T> = T | null
,并且有许多return null
语句。
现在我面临许多编译器错误,这些错误基本上表明T | null
无法转换为T | undefined
,反之亦然,就像在这个例子中一样:
interface MyInterface {
member1?: number;
member2?: string;
}
const myFunction = () => {
return null;
}
const item: MyInterface = {};
item.member1 = myFunction(); // <== can't assign null to undefined
null
我喜欢 TypeScript 中严格的 null 检查,但我没有用和之间的区别undefined
。我可以理解在某些用例中区分null
和是有意义的undefined
,但在这个项目中,它实际上并没有发挥重要作用。这些函数return null
什么都不返回——不管是null
还是undefined
. 可选成员也是如此——它们要么设置为一个值,要么不设置。
我也更喜欢不转换member1?: number;
to member1: Nullable<number>;
,而是保持return null
原样
我可以至少在 TypeScript 中禁用undefined
and之间的区别吗?null