如何在打字稿中将属性从一个对象复制到另一个对象

时间:2021-03-02 19:20:15

标签: javascript reactjs typescript react-typescript

我正在寻找一种类型安全的方法来在对象之间复制属性。我有在 javascript 中工作的代码,我正在尝试将其转换为打字稿,但是我无法让它工作。我收到了 conda install setuptools>=23.0

有人可以帮助我了解是否可以做我正在尝试做的事情以及我错过了什么吗?

Type '' is not assignable to type 'undefined'.(2322)

1 个答案:

答案 0 :(得分:0)

我想出了以下方法,目前看来已经足够好了。如果有更好的方法,请评论。

const mapTo = <T, S extends T, K extends keyof T>(target: T, source: S, key: K): void => {
    target[key] = source[key];
};


Object.keys(props).forEach(key => {
   if (isIconProp(key)) {
       mapTo(icon, props, key);
   } 
      
   if (isButtonProp(key)) {
       mapTo(button, props, key);
   }
});