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

and*_*e_b 6 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 可能无法实现这一点,但我想确定一下!

归档时间:

查看次数:

2683 次

最近记录:

4 年 前