网站搜索

我如何防止 Typescript 中的布尔值未定义?


对于我的三态复选框的 isSelected 状态,我只想允许 true、false 和 null 这几个值。我想防止它是 undefined。

这是我尝试的:

type CheckboxState = true | false | null;

class MyCheckboxProps {
    isSelected: CheckboxState;

    constructor() {
        this.isSelected = 'some string'; // doesn't compile - good
        this.isSelected = false; // compiles - good
        this.isSelected = null; // compiles - good
        this.isSelected = undefined; // compiles - WHY?
    }
}

看起来 TS 编译器将我的自定义 CheckboxState 类型完全当作原始 boolean 类型处理。

在 TypeScript 中是否可以创建一个不能为 undefined 的可空布尔值?