在下面的代码中,typscript 编译器在更新方法中显示错误,说“任何”不能分配给“从不”类型。我注意到当类型包含与其他类型混合的布尔值时,keyof 类型不起作用。我怎样才能使它编译在类型中有混合类型值?
type ConfigState = {
isAdminSet: boolean;
isDatabaseConnected: boolean;
adminName: string;
};
export class ConfigManager {
state: ConfigState = {
isAdminSet: false,
isDatabaseConnected: false,
adminName: "",
};
update(key: keyof ConfigState, value: ConfigState[keyof ConfigState]) {
this.state[key] = value;
}
}
但这编译:
type ConfigState = {
isAdminSet: boolean;
isDatabaseConnected: boolean;
};
export class ConfigManager {
state: ConfigState = {
isAdminSet: false,
isDatabaseConnected: false,
};
update(key: keyof ConfigState, value: ConfigState[keyof ConfigState]) {
this.state[key] = value;
}
}