代码段:
enum FooEnum {
MyKey = "my-key"
}
interface FooOption {
[FooEnum.MyKey]?: string;
}
function FooFn(opts: FooOption) {
const myKey: string = opts[FooEnum.MyKey] != null ? opts[FooEnum.MyKey] : "";
console.info(`Hello, ${myKey}`);
}
它给出以下警告:
[ts]Type 'string | undefined' is not assignable to type 'string'. Type 'undefined' is not assignable to type 'string'. const myKey: string
即使我检查我的选项是否未定义,我仍然会收到错误消息,类型为string | undefined
。我该如何解决这个问题?
我能想到的唯一解决方案是:
function FooFn(opts: FooOption) {
const tmpMyKey = opts[FooEnum.MyKey];
const myKey: string = tmpMyKey != null ? tmpMyKey : "";
console.info(`Hello, ${myKey}`);
}
,但是每次检查都非常烦人。有更好的方法吗?