或者键入,但不能为null



我在使用或运算符时遇到typescript问题,它也接受空值,这是我不想要的:

interface Value1 {
name: string;
email: string;
}
interface Value2 {
id: string;
image: string;
}

现在,当使用它时:

val: Value1 | Value2

它应该接受Value1或Value2,但也接受null值。如果我只做val: Value1,那么不接受null。那么,在使用or运算符时,如何避免空值呢?

默认情况下,nullundefined可分配给任何类型。您需要启用strictNullChecks来防止:

默认情况下,像nullundefined这样的值可以分配给任何其他类型。这可以让编写一些代码变得更容易,但忘记处理nullundefined是世界上无数错误的原因——有些人认为这是一个价值数十亿美元的错误!strictNullChecks标志使处理nullundefined更加明确,并使我们不用担心是否忘记处理nullundefined

相关内容

最新更新