81. 字符串数组排列组合
中等
实现一个通用的工具类型 Combination<T>
,它可以从给定的字符串数组中生成所有可能的排列和组合。
这种类型工具在处理 props
类型时非常有用,例如在定义 HTML <video>
元素的 controlsList
属性时,可以用来限定用户可以使用的控制列表选项。
例如:
type Keys = Combination<['foo', 'bar', 'baz']>
// 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"`