【问题标题】:Typescript fields with special characters带有特殊字符的打字稿字段
【发布时间】:2017-04-21 11:18:58
【问题描述】:

我们需要从 Typescript 中的 node.js 代码中调用一个 REST API,并希望有相应的请求和响应类型。 不幸的是,我们提供的接口的 JSON 包含以下字段:

{...
    "@ID": "1234567890",
        ...
    "@Name": "something",
    "#text": "content",
...
}

我们被告知,这源于另一端自动“JSONifier”的限制,无法更改。我们如何设置适合此的接口? 以下显然行不通:

  export interface Request {
    @ID: string;
    @Name: string;
    #text: string;
    ...
  }

【问题讨论】:

  • 我记得确实可以将字段声明为'@ID'并通过req['@ID']访问。我认为这是一个非常丑陋的解决方案。

标签: json node.js typescript


【解决方案1】:

就像 JS 对象一样,您可以用引号将名称括起来,如下所示:

  export interface Request {
    "@ID": string;
    "@Name": string;
    "#text": string;
  }

【讨论】:

  • 有没有办法在实现类的构造函数中使用这样的属性,像这样:public "@Name": string, ... 如果我尝试,编译器不喜欢它
  • 类需要一些特殊的语法,你可以使用计算属性名称:typescriptlang.org/play?#code/…
猜你喜欢
  • 1970-01-01
  • 2017-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-01
  • 2014-03-18
  • 1970-01-01
相关资源
最近更新 更多