根据 TypeScript 文档:
但是,当使用 --strictNullChecks 标志时,null 和 undefined 只能分配给 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