一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第26天,点击查看活动详情

Dear,大家好,我是“前端小鑫同学”,😇长期从事前端开发,安卓开发,热衷技术,在编程路上越走越远~


知识运用:

  1. 涉及到模板字符类型。
  2. 涉及到infer关键字使用。
  3. 涉及到类型编程中递归使用。

    题目分析:

    题目地址:531 - String to Union

实现一个将接收到的String参数转换为一个字母Union的类型。

例如

  1. type Test = '123';
  2. type Result = StringToUnion<Test>; // expected to be "1" | "2" | "3"

题目解答:

测试用例:

  1. 输入类型为空字符类型时,结果将是never;
  2. 当输入类型为单个字符类型时,结果将是这个字符类型
  3. 当输入类型为一组字符类型组成时,结果将是按字符拆开后组成的联合类型。 ```typescript / _ 测试用例 _ / import type { Equal, Expect } from ‘@type-challenges/utils’

type cases = [ Expect, never>>, Expect, ‘t’>>, Expect, ‘h’ | ‘e’ | ‘l’ | ‘l’ | ‘o’>>, Expect, ‘c’ | ‘o’ | ‘r’ | ‘o’ | ‘n’ | ‘a’ | ‘v’ | ‘i’ | ‘r’ | ‘u’ | ‘s’>>, ]

  1. <a name="EpXWc"></a>
  2. #### 答案及解析:
  3. 1. <br />
  4. ```typescript
  5. type StringToUnion<T extends string> = T extends `${infer H}${infer R}` ? H | StringToUnion<R> : never;

接下来的一题是:【类型挑战】StartsWith,难度⭐️⭐️


欢迎关注我的公众号“前端小鑫同学”,原创技术文章第一时间推送。