如题,我使用 vue+ts 开发项目,想要在全局声明 enum 枚举类型并赋默认值,因为项目中我会多出用到枚举类型,我希望全局可以直接使用,是必须导出并导入吗?
目前我是通过 .d.ts 声明文件来声明的,直接使用会报错,该枚举类型未定义。
test.d.ts
declare enum Directions { Up=1, Down=2, Left=3, Right=4 }
index.ts
function getDirection (direction: Directions) { console.log('##########direction', direction) } getDirection(Directions.Up)
// 在 types.ts 文件中 export enum UserType { Admin = 'Admin', User = 'User', Visitor = 'Visitor' }
然后在需要使用的地方导入:
import { UserType } from './types'; let user: UserType = UserType.Admin;
对于全局声明,你可以在项目根目录下的 shims.d.ts 文件中进行声明,或者在 src 目录下创建一个新的 .d.ts 文件:
// shims.d.ts
declare enum UserType { Admin = 'Admin', User = 'User', Visitor = 'Visitor' }
然后你就可以在整个项目中使用这个枚举类型了,无需导入:let user: UserType = UserType.Admin;
需要注意的是,全局声明的枚举类型无法使用 import 导入。