【发布时间】:2021-05-20 00:09:08
【问题描述】:
假设我有这个接口和具有嵌套属性的对象:
interface Iobj {
a: { a2:string };
b: string;
}
const obj: Iobj = {
a:{
a2: "hello"
}
b: "world"
};
我有一个字符串可以识别 obj 中的属性:
const prop = "a.a2"
// or
const prop = "b"
我正在尝试使用括号符号更新obj,但这些语句给了我错误Type 'string' is not assignable to type 'never'。
obj[prop] = "newString";
obj[prop as keyof Iobj] = "newString";
似乎obj[prop] 未被识别为有效。我在这里做错了什么?
【问题讨论】:
-
obj["a.a2"]即使在原版 JS 中也不起作用;你必须使用lodash.get之类的东西。 -
有效的道具(例如
"b")工作正常typescriptlang.org/play?#code/…
标签: json typescript