相关疑难解决方法(0)

如何展平具有嵌套子属性的对象类型?

我有数据类型的下一个数据

type Data = {
  Id: string,
  LogicalName: string,
  VATRegistered: {
    Label: string | null,
    Value: number | null,
  }
}

const data: Data = {
  Id: 'qK1jd828Qkdlqlsz8123assaa',
  LogicalName: 'locale',
  VATRegistered: {
    Label: 'AT401',
    Value: 1000001
  }
}
Run Code Online (Sandbox Code Playgroud)

我必须将其转换为下一个:

const transformedData = {
  Id: 'qK1jd828Qkdlqlsz8123assaa',
  LogicalName: 'locale',
  VATRegisteredLabel: 'AT401',
  VATRegisteredValue: 1000001
}
Run Code Online (Sandbox Code Playgroud)

我编写了一个函数,它必须转换我的对象并以下一个类型返回它

type TransformedData {
  Id: string,
  LogicalName: string,
  VATRegisteredLabel: string | null,
  VATRegisteredValue: number | null
}
Run Code Online (Sandbox Code Playgroud)

我的功能:

const _isNull = (value: any) => {
  let res = …
Run Code Online (Sandbox Code Playgroud)

typescript

9
推荐指数
2
解决办法
2085
查看次数

在 TypeScript 中展平嵌套对象,同时保留类型

我有一个嵌套对象,我想将其展平,同时还连接嵌套键。我想从这里开始:

const nested = {
  a: {
    b: {
      c: {
        d1: "hello",
        d2: 42,
      },
    },
  },
};
Run Code Online (Sandbox Code Playgroud)

对此:

const flattened = {
  "a.b.c.d1": "hello",
  "a.b.c.d2": 42,
};
Run Code Online (Sandbox Code Playgroud)

如果我有一个执行此转换的函数,例如

function flatten<TNested>(nested: TNested): Flattened<TNested> {...}
Run Code Online (Sandbox Code Playgroud)

是否可以定义Flattened执行正确操作并正确推断 的类型的类型flattened

我知道当前的 TypeScript 可能无法实现这一点,但我想确定一下!

typescript

6
推荐指数
0
解决办法
2683
查看次数

标签 统计

typescript ×2