首页 > 其他分享 >Typescript类型体操 - Flatten

Typescript类型体操 - Flatten

时间:2022-09-06 21:01:50浏览次数:99  
标签:... Typescript Flatten 体操 array type flatten

题目

中文

在这个挑战中,你需要写一个接受数组的类型,并且返回扁平化的数组类型。

例如:

type flatten = Flatten<[1, 2, [3, 4], [[[5]]]]> // [1, 2, 3, 4, 5]

English

In this challenge, you would need to write a type that takes an array and emitted the flatten array type.

For example:

type flatten = Flatten<[1, 2, [3, 4], [[[5]]]]> // [1, 2, 3, 4, 5]

答案

type Flatten<T extends any[]> = T extends [infer L, ...infer R]
  ? [...(L extends any[] ? Flatten<L> : [L]), ...Flatten<R>]
  : [];

在线演示

标签:...,Typescript,Flatten,体操,array,type,flatten
From: https://www.cnblogs.com/laggage/p/16663283.html

相关文章

  • Typescript类型体操 - Length of String
    题目中文计算字符串的长度,类似于String#length。EnglishComputethelengthofastringliteral,whichbehaveslikeString#length.答案解法1typeStringToArr......
  • leetcode 114. Flatten Binary Tree to Linked List 二叉树展开为链表(简单)
    一、题目大意给你二叉树的根结点root,请你将它展开为一个单链表:展开后的单链表应该同样使用TreeNode,其中right子指针指向链表中下一个结点,而左子指针始终为null。......
  • [Typescript Challenges] 15. Medium - Omit
    Implementthebuilt-in Omit<T,K> genericwithoutusingit.Constructsatypebypickingallpropertiesfrom T andthenremoving KForexampleinterfaceT......
  • Typescript类型体操 - Append Argument
    题目中文实现一个泛型AppendArgument<Fn,A>,对于给定的函数类型Fn,以及一个任意类型A,返回一个新的函数G。G拥有Fn的所有参数并在末尾追加类型为A的参数。typeF......
  • Typescript类型体操 - Parameters
    题目中文实现内置的Parameters<T>类型,而不是直接使用它,可参考TypeScript官方文档。例如:constfoo=(arg1:string,arg2:number):void=>{}typeFunctionParams......
  • Typescript类型体操 - ReplaceAll
    答案中文实现ReplaceAll<S,From,To>将一个字符串S中的所有子字符串From替换为To。例如typereplaced=ReplaceAll<'types','',''>//期望是'types'......
  • Typescript类型体操 - Replace
    题目中文实现Replace<S,From,To>将字符串S中的第一个子字符串From替换为To。例如typereplaced=Replace<'typesarefun!','fun','awesome'>//期望是......
  • 2022 年要改掉的 10 个 TypeScript 坏习惯
    2022年要改掉的10个TypeScript坏习惯TypeScript和JavaScript在过去几年中不断进步,我们在过去几十年中建立的一些实践已经过时。有些可能永远没有意义。下面列出......
  • 使用 Node.js 构建基于 Typescript 的命令行界面 (CLI)
    使用Node.js构建基于Typescript的命令行界面(CLI)我们的目标是使用Typescript创建一个基于Node.js的命令行界面(CLI)。此设置包括顶级等待支持和ES模块导入。......
  • Typescript类型体操 - Trim
    题目中文实现Trim<T>,它是一个字符串类型,并返回一个新字符串,其中两端的空白符都已被删除。例如typetrimed=Trim<'HelloWorld'>//expectedtobe'HelloWorld......