是否可以使用enum
从babel
编译的文件中消耗@babel/preset-typescript
?
mymodule.d.ts
declare module 'mymodule' {
export enum Fruit {
apple = 'Apple',
}
}
script.js
import { Fruit } from 'mymodule'
assert.equals(Fruit.apple === 'Apple')
Fruit
在这种情况下将是未定义的,因为babel
不了解环境声明。
除了声明一个单独的enum / constants文件并直接在两个位置(环境模块和脚本)中导入文件之外,还有其他方法吗?
答案 0 :(得分:1)
您不能从声明文件(*.d.ts
)中导入可执行代码。
您可以使用声明文件描述另一个模块中发生的事情。在这种情况下,如果Fruit
中存在mymodule
,则可以在mymodule.d.ts
中声明其形状-但是执行的不是声明,而是mymodule
中的实际代码。 / p>
换句话说,Fruit
必须存在于*.ts
或*.js
文件中,以便在运行时使用。