使用枚举作为接口键时无法检查未定义

时间:2018-09-07 11:29:11

标签: typescript3.0

代码段:

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}`);
}

,但是每次检查都非常烦人。有更好的方法吗?

0 个答案:

没有答案