今天遇到一个问题,一个第三方库的***.d.ts文件里定义了一个enum
export enum ABC{
DD: 3
}
我没有办法import这个enum,在编译的时候会报错 cannot find module ***(file contains the enum)
原因是声明文件.d.ts是用来给js格式的内容添加类型辅助声明的,本身只放类型声明相关的东西,并且打包编译的时候不会被编译到包内。这样就容易理解了,enum并不是一个对某对象的类型声明,而是定义了一个对象,该内容打包时不被打包,引用这个enum的代码就无法找到这个enum导致报错。
官网对.d.ts
文件的说明如下:
TypeScript has two main kinds of files. `.ts` files are _implementation_ files that contain types and executable code. These are the files that produce `.js` outputs, and are where you’d normally write your code.
`.d.ts` files are _declaration_ files that contain _only_ type information. These files don’t produce `.js` outputs; they are only used for typechecking.