Typescript 有可能从一个有区别的并集类型生成组合集吗?

Typescript 有可能从一个有区别的并集类型生成组合集吗?,typescript,Typescript,是否有可能处理一个有区别的并集以获得一组(文字)值 接口Foo{ 类型:“汽车”; 颜色:红色; } 接口条{ 类型:“汽车”; 颜色:“蓝色”; } 界面Baz{ 类型:“自行车”; 颜色:“黄色”; } 类型联合=Foo | Bar | Baz console.log(getCombinations()) // [ //[‘汽车’、‘红色’], //[‘汽车’、‘蓝色’], //[“自行车”,“黄色”], // ] 如果可能的话,这对于生成测试数据非常有用,所以您想从中创建实际的数组,而不

是否有可能处理一个有区别的并集以获得一组(文字)值

接口Foo{
类型:“汽车”;
颜色:红色;
}
接口条{
类型:“汽车”;
颜色:“蓝色”;
}
界面Baz{
类型:“自行车”;
颜色:“黄色”;
}
类型联合=Foo | Bar | Baz
console.log(getCombinations())
// [
//[‘汽车’、‘红色’],
//[‘汽车’、‘蓝色’],
//[“自行车”,“黄色”],
// ]

如果可能的话,这对于生成测试数据非常有用

,所以您想从中创建实际的数组,而不是元组类型?这无法工作,因为运行时不存在类型。是的,测试中使用的实际数据。谢谢可以将值转换为类型,但不能将类型转换为值。
interface Foo {
  type: 'Car';
  color: 'red';
}

interface Bar {
  type: 'Car';
  color: 'blue';
}

interface Baz {
  type: 'Bike';
  color: 'yellow';
}

type Union = Foo | Bar | Baz

console.log(getCombinations<Union>())

// [
//  ['Car', 'red'],
//  ['Car', 'blue'],
//  ['Bike', 'yellow'],
// ]