记录一个遇到的ts问题以及其解决办法。 在typings.d.ts中,定义了一个类型
declare namespace Courses {
// 解锁规则
type UnlockRuleEnum = 'RIGHT_NOW' | 'SEQUENCE' | 'TIMED_X_DAY' | 'TIMED_X_WEEK'; //立即解锁、顺序解锁、定时解锁-第X天、定时解锁-第x周
}
使用的时候没有问题
// 解锁规则
export const UNLOCK_RULE_ENUM: { [k in Courses.UnlockRuleEnum]: string } = {
RIGHT_NOW: '立即解锁',
SEQUENCE: '顺序解锁',
TIMED_X_DAY: '定时解锁(天)',
TIMED_X_WEEK: '定时解锁(周)',
};
后来我们需要从外部引入一个 categoryEnum 类型定义,引入方式:
import type { categoryEnum } from '@/utils/constants'
然后我们发现,之前的使用会报错
解决办法:
export = Courses
export as namespace Courses
完整写法:
import type { categoryEnum } from '@/utils/constants'
declare namespace Courses {
// 解锁规则
type UnlockRuleEnum = 'RIGHT_NOW' | 'SEQUENCE' | 'TIMED_X_DAY' | 'TIMED_X_WEEK'; //立即解锁、顺序解锁、定时解锁-第X天、定时解锁-第x周
}
export = Courses
export as namespace Courses