请教一个 Typescript 动态添加属性的问题。
我们知道 JS 里可任意添加属性且无类型限制。假设有以下场景:
const base = {
age: 20,
skill: 'TS',
}
const person = {
name: 'Frankie',
}
// 给 person 动态添加属性
for (const key in base) {
if (Object.prototype.hasOwnProperty.call(base, key)) {
person[key] = 'any value' // string、number、function etc.
}
}
// 请问有什么办法,可以让 TS 自动识别 for...in 动态添加的属性?
// 比如 person.age 可识别前面动态赋值的 'any value' 对应类型。
console.log(person.age)
疑问已在示例中提出。
假设项目中 base
是会随着业务迭代而发生变化的,我希望在键入 person.xxx
的时候,TS 会根据 for...in
动态添加的属性,自动推断出对应的类型。
TS 写得不多,所以请教下各位大佬,谢谢!
给 person 声明类型