【问题标题】:Create an alias name for a property in Typescript [duplicate]在 Typescript 中为属性创建别名 [重复]
【发布时间】:2022-01-11 07:19:32
【问题描述】:

上下文:我必须向具有属性的接口主体的服务器发出发布请求 title_string、created_at 等

interface IPostBody{
      titleString:string;
      createdAt:string;
      ....
    }

这里需要用到这个接口

const requestBody:IPostBody={
  title_string:'hehe';
  created_at:'my home';
}

如您所见,名称不匹配,因此会引发类型缺失错误。

有没有办法在不改变接口定义中的驼峰命名法的情况下解决这个问题

【问题讨论】:

  • 听起来您正在寻找this,您将类型IPostBody 转换为带有snake_case 键的版本,如const requestBody: CamelKeysToSnake<IPostBody> = ...。那正确吗? (如果是这样,那么这个问题可能是duplicate。让我知道。)
  • @jcalz 是的,我猜它是重复的,谢谢

标签: typescript


【解决方案1】:

您可以定义一个将键更改为骆驼外壳的转换器函数:

function transformBody(body: any) : IPostBody {
 return {
   titleString: body.title_string,
   createdAt: body.created_at
   // and so on...
 }
}

或者创建一个自动将所有键转换为 camcel 大小写的函数。见Convert returned JSON Object Properties to (lower first) camelCase

【讨论】:

    猜你喜欢
    • 2015-03-26
    • 1970-01-01
    • 2022-01-16
    • 1970-01-01
    • 2019-02-16
    • 2015-10-15
    • 1970-01-01
    • 2020-06-24
    • 1970-01-01
    相关资源
    最近更新 更多