这是强制所有类型选项出现在对象键中的代码(并且不允许其他键):
type Fruit = 'apple' | 'peach';
const objectWithAllFruitsAsKeys: {
[ key in Fruit ]: any
} = { apple: '', peach: '' }
Run Code Online (Sandbox Code Playgroud)
我正在寻找输入公式,允许与数组值的接近行为 - 获取所有 Fruit 类型的值作为值出现在其中的数组。
const arrayWithAllFruitsAsvalues: ??? = ['apple', 'peach'];
Run Code Online (Sandbox Code Playgroud)
你们有什么想法吗?先感谢您!
假设我有一个看起来像这样的工会
type Colors = 'red' | 'blue' | 'pink'
Run Code Online (Sandbox Code Playgroud)
是否可以针对此联合对数组进行类型检查并确保该数组包含所有类型?
IE:
const colors: UnionToTuple<Colors> = ['red', 'blue'] // type error, missing 'pink'
const colors: UnionToTuple<Colors> = ['red', 'blue', 'pink'] // no error
Run Code Online (Sandbox Code Playgroud) 给定一个使用此处描述的技术创建的强类型元组:
const tuple = <T extends string[]>(...args: T) => args;
const furniture = tuple('chair', 'table', 'lamp');
// typeof furniture[number] === 'chair' | 'table' | 'lamp'
Run Code Online (Sandbox Code Playgroud)
我想在设计时断言它对另一种联合类型是详尽无遗的:
type Furniture = 'chair' | 'table' | 'lamp' | 'ottoman'
Run Code Online (Sandbox Code Playgroud)
我如何创建一个类型来确保furniture包含联合中的每个类型Furniture?
目标是能够在设计时像这样创建一个数组,如果它失败应该Furniture改变;理想的语法可能如下所示:
const furniture = tuple<Furniture>('chair', 'table', 'lamp')
Run Code Online (Sandbox Code Playgroud)