typescript 动态设置React性时键入

gk7wooem  于 2023-05-30  发布在  TypeScript
关注(0)|答案(1)|浏览(141)

当我试图通过动态访问属性来设置React属性时,我得到一个类型脚本错误,
Element implicitly has an 'any' type because expression of type 'string' can't be used to index type '{ settings : string; }'.
代码如下:

const settings = reactive({
   name: 'hello'
 });

const setProperty = (property: string) => { 

  settings[property] = 'new value';           // <-- typescript error

}

我可以通过输入“any”来解决它,但这不是正确的解决方案:

(settings as any)[property] = 'new value';

那么,什么是一个好的方式来输入它?

acruukt9

acruukt91#

您应该使用keyof typeof settings而不是string作为property

const setProperty = (property: keyof typeof settings) => { 
  settings[property] = 'new value';
}

相关问题