typescript 如何全局声明 enum 枚举类型和值?
如题,我使用 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)
回复
1个回答

test
2024-06-29
// 在 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 导入。
回复

适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容