【发布时间】:2023-02-10 23:30:56
【问题描述】:
我有这样的代码:
interface IFoo {
bar: string;
baz: number;
}
function f(foo: IFoo, name: 'bar' | 'baz', val: any) {
foo[name] = val; // <<< error: Type 'any' is not assignable to type 'never'.
}
如果我将“baz”的类型也更改为“string”,那么错误就消失了:
interface IFoo {
bar: string;
baz: string;
}
function f(foo: IFoo, name: 'bar' | 'baz', val: any) {
foo[name] = val; // fine
}
为什么会发生这种情况,是否有可能解决这个问题?
我正在寻找一种比将 name: 'bar' | 'baz' 替换为 name: string 更好的解决方案。
【问题讨论】:
标签: typescript