Фрагмент кода:
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}`);
}
, но очень неприятно каждый раз проверять подобное. Есть ли лучший способ?