【问题标题】:How to properly type a function that changes the values ​of an object如何正确键入更改对象值的函数
【发布时间】:2021-01-29 05:32:07
【问题描述】:

我在打字方面没有太多经验,所以有时会出现这样的问题。如何正确键入为对象 const 的值添加后缀并返回的函数

export const POSTFIX = '_postfix';

export const WITHOUT_POSTFIX_VALUES = {
  PRODUCT: 'product',
  ORDER: 'order',
  PERSON: 'person',
} as const;

export const addPostfixToValues = (obj: object) => Object.fromEntries(Object.entries(obj).map(([k, v]) =>  [k, `${v}${POSTFIX}`]));

export const WITH_POSTFIX = addPostfixToValues(WITHOUT_POSTFIX_VALUES);

这里是代码框https://codesandbox.io/s/qsoe7的链接

我想获得具有只读字段但添加了后缀的相同对象。 提前感谢您提供任何信息

【问题讨论】:

    标签: typescript types


    【解决方案1】:

    这类问题被问了很多。当前版本的 typescript 不支持字符串文字的映射,但该功能即将推出。

    与此同时,您能做的最好的事情是键入WITH_POSTFIX 作为一个对象,它与WITHOUT_POSTFIX_VALUES 具有相同的键,其值为字符串。那将是:

    Record<keyof typeof WITHOUT_POSTFIX_VALUES, string>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-15
      • 2022-10-16
      相关资源
      最近更新 更多