null 在启用标志 --strictNullChecks 时不可分配给 void



根据 TypeScript 文档:

但是,当使用 --strictNullChecks 标志时,nullundefined 只能分配给 void 及其各自的类型。这有助于避免许多常见错误。如果要传入字符串或 null 或未定义,可以使用联合类型字符串 | null | undefined。再一次,稍后会详细介绍工会类型。

但是,当我尝试以下代码片段时:

// This worked correctly
let voidIsUndefined: void = undefined;
// While following code thrown a compilation error "Type 'null' is not assignable to type 'void'."
let voidIsNull: void = null;

它没有完全按预期工作。

根据文档,我应该能够将 null 分配给 void 类型。有人可以消除这个疑问吗?

TypeScript 文档具有误导性,您感到困惑是正确的。这里有一个问题:https://github.com/microsoft/TypeScript-Handbook/issues/468

最新更新