MST

星途 面试题库

面试题:TypeScript 类型体操:实现一个递归类型来扁平化嵌套数组

假设存在一个类型 `type NestedArray<T> = T | NestedArray<T>[];`,表示一个可能嵌套的数组类型。请实现一个类型 `Flatten<T>`,它可以将 `NestedArray<T>` 类型的嵌套数组扁平化。例如,`type Flattened = Flatten<NestedArray<number>>`,对于输入 `[1, [2, [3]]]`,经过 `Flatten` 类型处理后,得到的类型应该是 `[1, 2, 3]`。
13.7万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
type Flatten<T> = T extends Array<infer U>
  ? U extends NestedArray<infer V>
      ? Flatten<U>
      : U[]
  : [T];