允许与typescript中数组中的项匹配的任何值
我是typescript新手,目前我知道我可以做到:允许与typescript中数组中的项匹配的任何值,typescript,Typescript,我是typescript新手,目前我知道我可以做到: var display: 'block' | 'inline' | 'flex' | 'inline-flex' = 'block'; 因此,如果我尝试为变量display分配与上述任何选项都不匹配的任何值,则在代码的后面部分将显示错误 但是,如果我在代码前面以数组的形式编写了这些选项,该怎么办?例如: const displayOptions = ['block', 'inline', 'flex', 'inline-flex']; va
var display: 'block' | 'inline' | 'flex' | 'inline-flex' = 'block';
因此,如果我尝试为变量display
分配与上述任何选项都不匹配的任何值,则在代码的后面部分将显示错误
但是,如果我在代码前面以数组的形式编写了这些选项,该怎么办?例如:
const displayOptions = ['block', 'inline', 'flex', 'inline-flex'];
var display: /* now what do I write here? */ = 'block';
我不想使用按位OR运算符重写选项,因为这样每当我需要添加或删除选项时,我都必须重新更新这两行中的选项。听起来像是在寻找
枚举
enum Displays {
Block = 'block',
Inline = 'inline',
Flex = 'flex',
InlineFlex = 'inline-flex'
}
const display1: Displays = Displays.Block; // OK
const display2: Displays = 'block'; // error
const display3: Displays = 'something else'; // error
听起来您正在寻找一个枚举
enum Displays {
Block = 'block',
Inline = 'inline',
Flex = 'flex',
InlineFlex = 'inline-flex'
}
const display1: Displays = Displays.Block; // OK
const display2: Displays = 'block'; // error
const display3: Displays = 'something else'; // error
您可以利用const上下文:
const displayOptions = ['block', 'inline', 'flex', 'inline-flex'] as const;
type Options = typeof displayOptions[number];
let display: Options = 'block';
let display2: Options = ''; // error
您可以使用const上下文:
const displayOptions = ['block', 'inline', 'flex', 'inline-flex'] as const;
type Options = typeof displayOptions[number];
let display: Options = 'block';
let display2: Options = ''; // error
constdisplayoptions=['block','inline','flex','inline flex']作为常量;
类型值of=T[keyof T];
变量显示:ValueOf='block';
常量显示选项=['block','inline','flex','inline flex']作为常量;
类型值of=T[keyof T];
变量显示:ValueOf='block';