繁体   English   中英

使用@ babel / preset-typescript从环境TypeScript模块中消耗枚举吗?

[英]Consume enum from ambient TypeScript module using @babel/preset-typescript?

是否可以使用@babel/preset-typescript typescript从babel编译的文件中使用enum

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文件并直接在两个位置(环境模块和脚本)中导入文件之外,还有什么方法可以解决此问题?

您不能从声明文件( *.d.ts )导入可执行代码。

您可以使用声明文件来描述另一个模块中发生的事情。 在这种情况下,如果Fruit中存在mymodule ,你可以声明其形状mymodule.d.ts -但它不是真实执行的声明,但实际的代码住在mymodule

换句话说, Fruit必须存在于*.ts*.js文件中才能在运行时使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM