首页 > 解决方案 > 两个类之间的打字稿复杂映射

问题描述

免责声明:首先我不得不说我有不同的背景——Java/Scala 和 Typescript 绝对不是我最大的优势。

我有两个相当复杂的类和预定义的合同,它们将每个属性从 A 类映射到 B 类。我必须根据需要将 A 类的实例转换为 B 类,反之亦然。我知道这可以通过一个静态映射器来完成,它在代码中进行翻译,但我想知道是否有一些包/技术可以减轻我的痛苦。我已经检查了https://github.com/typestack/class-transformer,但它似乎并没有涵盖我想要的所有内容。

要求:

  1. 一个类中的一些数组字段可以在映射到另一个类之前进行转换或展平。
  2. A 类是一个简单的 {[key:string], string} 映射,而 B 的字段更复杂,类型是从合约中推断出来的。
  3. A 类中的键可能映射到 B 类中的键 Y。

示例 A->B:

class A {

  "key1" = "1234"
  "key2" = "text" 
  "key3" = "10/07/2021"
  "key5" = "otherText"

}

and after conversion 

class B {

  "newKey1" = 1234,
  "newKey2" = "text",
  "newKey3" =  Date(..),
  "key4": {
      "key5": "otherText"
  }

任何提示,建议将不胜感激。

标签: node.jstypescript

解决方案


推荐阅读