我想将枚举导入接口。 (使用typescript 2.5)但是这将在另一个接口中使用接口中断。这是示例代码
allEnums.ts
export enum ButtonType {
Top = 1,
Bottom = 2
}
other enums following ...
buttonInterface.d.ts
import { ButtonType } from "allEnums";
interface ButtonInterface {
buttonType: ButtonType
}
formInterface.d.ts
interface FormInterface {
buttos: ButtonInterface[]
}
结果是formInterface.d.ts
中的错误找不到名称ButtonInterface
将ButtonInterface导入FormInterface是有帮助的,就像这样
import { ButtonInterface } from "buttonInterface";
但是我认为导入接口不是一个好的解决方案
答案 0 :(得分:2)
从TypeScript 2.9开始,您可以在不导入类型的情况下导入类型:
import("./buttonInterface").ButtonInterface
只要您使用的是TypeScript 2.9或更高版本,就可以在场景中使用它。您也可以给它一个别名:
type ButtonInterface = import('./buttonInterface').ButtonInterface;
interface FormInterface {
buttos: ButtonInterface[]
}
您的IDE /文本编辑器可能达不到这一点,但如果您发现编辑器内错误,请运行tsc
进行检查。
答案 1 :(得分:1)
我认为将枚举作为类型导入更干净,因为不想编写包含接口的代码
allEnums.ts
export enum ButtonType {
Top = 1,
Bottom = 2
}
buttonInterface.d.ts
type ButtonType = import('allEnums').ButtonType;
interface ButtonInterface {
buttonType: ButtonType
}
formInterface.d.ts
interface FormInterface {
buttos: ButtonInterface[]
}