【类型挑战】Concat,难度⭐️

简介: 【类型挑战】Concat,难度⭐️

知识运用:


  1. 泛型约束输入类型;
  2. 数组解构参照ES6文档。


题目分析:


题目地址:533-easy-concatimage.png本次案例相对简单,通过实现一个通用的类型工具支持将两个数组中包含的类型合并到一个数组集合中。功能类似于我们在JavaScript中的Array.concat函数。


题目解答:


测试用例:

  1. 依次将两个数组中的元素提取并按顺序进行整合。
  2. 当两个数组传入均为空的时候,我们得到的结果也将是一个空数组。
/* _____________ 测试用例 _____________ */
import { Equal, Expect } from '@type-challenges/utils'
type cases = [
  Expect<Equal<Concat<[], []>, []>>,
  Expect<Equal<Concat<[], [1]>, [1]>>,
  Expect<Equal<Concat<[1, 2], [3, 4]>, [1, 2, 3, 4]>>,
  Expect<Equal<Concat<['1', 2, '3'], [false, boolean, '4']>, ['1', 2, '3', false, boolean, '4']>>,
]
复制代码


答案及解析:

  1. 依据题目要求和测试用例得到我们设计的类型工具满足支持两个数组参数的传入,但数组的类型不做要求,这个我们还是用泛型来约束传入类型。分别约束类型T和U。
  2. 如何将两个数组展平后合并到一个数组里面呢?这里需要使用到的知识点依旧是数组解构,使用解构将直接展平我们的一维数组,分别将两个展平的数组放到索引0和1的位置,最后得到的结果将满足所提供的4条测试用例。
/* _____________ 你的代码 _____________ */
type Concat<T extends any[], U extends any[]> = [...T, ...U];
复制代码


去演练场验证答案



目录
打赏
0
0
0
0
71
分享
相关文章
VirtualBox实现共享剪贴板
VirtualBox实现共享剪贴板
569 0
开发了一款工具,1 分钟爬楼看完群聊全部精华
开发了一款工具,1 分钟爬楼看完群聊全部精华
306 0
告别代码冗余!Python闭包与装饰器如何让你秒变代码优化大师?
【7月更文挑战第6天】Python的闭包和装饰器是解决代码冗余的利器。闭包,如匿名函数,记忆外部作用域变量,实现代码封装。例如,`make_multiplier_of`生成特定乘法函数,避免重复。装饰器如`@my_decorator`,不修改原函数,添加额外功能,如在函数调用前后打印信息。两者结合,提升代码灵活性和复用性,是优化和整洁代码的关键。
94 0
Day_14 > 指针进阶(3)> bubble函数
Day_14 > 指针进阶(3)> bubble函数
数据结构之第四章、ArrayList和顺序表
在集合框架中,ArrayList是一个普通的类,实现了List接口,具体框架图如下:【说明】ArrayList是以泛型方式实现的,使用时必须要先实例化ArrayList实现了RandomAccess接口,表明ArrayList支持随机访问ArrayList实现了Cloneable接口,表明ArrayList是可以clone的ArrayList实现了Serializable接口,表明ArrayList是支持序列化的和Vector不同,
76 0
登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问