Skip to content

interface 中使用 enum 约束 key 的取值范围

  • demo.ts
ts
// 表单配置
export interface FormConfig {
  openMode: FormOpenModes
  formItems: Array<FormItem>
  rules?: FormRules;
  title?: string
  /** 一个item的占宽最大24,默认24 */
  gutterSpan?: number;
  /** 窗体的大小, 当使用 number 类型时, 以像素为单位, 当使用 string 类型时, 请传入 'x%', 否则便会以 number 类型解释 */
  size?: any;
}

// 这样可以让 FormConfig.openMode 拿到 FormOpenMode 的范围提示
export type FormOpenModes = keyof typeof FormOpenMode;

// 表单打开模式
export enum FormOpenMode {
  default = 'default',
  drawer = 'drawer',
  dialog = 'dialog',
}