TypeScript(TS)中怎样根据参数名动态赋值

正文

假如我们有个这样的类

1
2
3
4
interface User {
name: string
age: number | null
}

我们想写个方法传入属性和值,自动赋值

在JS中直接赋值即可

但是TypeScript 的类型检查机制会严格验证赋值操作的类型兼容性。

目前只能这样赋值了

1
2
3
4
5
6
7
8
switch (para) {
case 'name':
user.name = value
break
case 'age':
user.age = Number(value)
break
}