Vin*_*Dev 1 javascript enums typescript reactjs
我正在创建一个库,从中导出 React 组件以及一些接口和枚举。我编译了打字稿项目。这是因为该库是针对 React 而不是 Typescript 的。我也在创建正确的定义文件。
现在在我的消费者项目中,我正在这样做:
import { IMyComponentProps, MyComponent } from "mycomp-lib";
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,我能够使用IMyComponentProps
. 我将其用于一个函数,该函数将进行一些计算并返回 的 props MyComponent
。
但从我的库中,我还导出一个枚举,如下所示:
export const enum DirectionEnum {
UP,
DOWN,
RIGHT,
LEFT
}
Run Code Online (Sandbox Code Playgroud)
但当我这样做时import { IMyComponentProps, MyComponent, DirectionEnum } from "mycomp-lib";
DirectionEnum
我开始收到未从 导出的错误mycomp-lib
。
这个枚举是必需的,因为即使 的使用者mycomp-lib
是用纯 JavaScript 编写的,它也很有用。但在 typescript 项目中,它肯定是需要的。
我正在使用 typescript v3 和 React v16.3。
哦,我明白了。
Typescript 不会创建 的查找表const enum
,它仅创建 的查找表enum
。但正因为如此,性能const enum
才更好。
对于消费者打字稿项目,可以通过在 tsconfig.json 中提供选项来创建查找表preserveConstEnums: true
。
这仍然不会让我的库评估查找表中的值(性能优势),但它将将该查找表导出到消费者(我想要的)。
感谢所有思考这个问题的人,我希望这对其他人也有帮助。