TypeScript 里在 interface 中使用 enum 报错?

我在 vite+vue+ts 的模板中定义了一个 login.d.ts 的文件,如下:

declare namespace Login{
  enum Gender {
    MALE = '0', FEMALE = '1'
  }
  
  interface Form {
    userName: string
    password: string
    passwordSure?: string
    gender?: Gender
  }
  
  interface GenderItem {
    value: Gender,
    label: string
  }
}

然后在组件中使用:

const genderOptions: Login.GenderItem[] = [{
  value: Login.Gender.MALE,
  label: '男'
}, {
  value: Login.Gender.FEMALE,
  label: '女'
}]

vscode 里面没有报错,
浏览器显示不出来页面,提示:
image.png
image.png
也就是浏览器不能识别?请问下是不是我定义 GenderItem 的时候定义错了?还是页面上不能那么用?

阅读 1.8k
1 个回答

enum 有运行时的部分,不能只写在 .d.ts 里面

推荐问题
logo
Microsoft
子站问答
访问
宣传栏