在 src / models 文件夹中,我有一个很大的枚举列表,我把它放在命名空间 Enums 中。
Enums.ts
UPDATE `oc_product` INNER JOIN `my_temp_table` on `my_temp_table`.`product_id` = `oc_product`.`product_id` SET `oc_product`.`upc` = `my_temp_table`.`upc`
在 src / typings-custom 文件夹中,我有一些使用 Enums 的接口(等等)。
dto.d.ts
namespace Enums {
const enum MethodType {
Equal,
NotEqual,
...
}
}
我发现将我的Enums名称空间引用到DTO名称空间的唯一方法是使用/// <reference path="../models/Enums" />
namespace DTO {
interface IRule {
MethodType: Enums.MethodType
}
}
行。
它仍然是TypeScript v2.6的良好实践的一部分吗? 还有另外一种方法吗? (我尝试使用 import ,但它需要一个模块而不是命名空间)
谢谢!
答案 0 :(得分:2)
管理代码的最佳方法是使用模块,而不是命名空间。要记住的一件事是it is best not to mix modules and namespaces in TypeScript。
模块是具有import
或export
表达式的任何文件。
以下是Enums.ts
模块:
export const enum MethodType {
Equal,
NotEqual,
}
导入MethodType
枚举以供实际使用的示例:
import { MethodType } from '../models/Enums';
interface IRule {
MethodType: MethodType
}
您也可以导入该批次&#34;,但要注意依赖您不需要的东西:
import * as Enums from '../models/Enums';
interface IRule {
MethodType: Enums.MethodType
}
理想情况下,您可以使用模块加载程序加载代码,但如果要继续捆绑,也可以使用工具将整批文件打包到单个文件中。
答案 1 :(得分:0)
export namespace Enums {
const enum MethodType {
Equal,
NotEqual,
...
}
}
/*-----*/
import * as Enums from './Enums'
记住,最好更改名称,因为Enums
类似于限制词。
希望这会有所帮助。