Zer*_*rty 9 enums typescript reactjs
我有以下枚举
export enum Sizes{
Small,
Large
}
Run Code Online (Sandbox Code Playgroud)
在我的<Demo/>组件的props接口中正在使用:
export interface IProps{
Label?: string;
Size: SizeEnum;
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,何时使用此功能<Demo Size={how do i define size here?} />?
Tit*_*mir 13
您可以像在任何其他上下文中一样引用枚举值:
export enum Sizes{
Small,
Large
}
export interface IProps{
Label?: string;
Size: Sizes;
}
class Demo extends React.Component<IProps> {}
let d = <Demo Size={Sizes.Large} />
Run Code Online (Sandbox Code Playgroud)
type或as constenum在打字稿中使用被认为是一种糟糕且不可靠的做法。双方type并as const具有自动填充和当使用无效的值会抱怨。
type MyEnum = 'up' | 'down' | 'left' | 'right'
Use:
'up'
interface IProps {
Size: MyEnum
}
Run Code Online (Sandbox Code Playgroud)
const MyEnum = {
Up: 'up',
Down: 'down',
Left: 'left',
Right: 'right',
} as const
type MyEnum = typeof MyEnum[keyof typeof MyEnum]
Use:
MyEnum.Up
interface IProps {
Size: MyEnum // string, without line `type MyEnum =...`
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11581 次 |
| 最近记录: |