Typescript类型体操 - Combination

题目

中文

给定一个字符串数组, 实现它的全排列组合.

English

Given an array of strings, do Permutation & Combination.
It's also useful for the prop types like video controlsList

// expected to be `"foo" | "bar" | "baz" | "foo bar" | "foo bar baz" | "foo baz" | "foo baz bar" | "bar foo" | "bar foo baz" | "bar baz" | "bar baz foo" | "baz foo" | "baz foo bar" | "baz bar" | "baz bar foo"`
type Keys = Combination<['foo', 'bar', 'baz']>

答案

type Combination<
  T extends string[],
  All = T[number],
  Item = All
> = Item extends string
  ? Item | `${Item} ${Combination<[], Exclude<All, Item>>}`
  : never;

#11027 抄来的解法, 很妙!

在线演示

posted @   Laggage  阅读(112)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示