如何使用TypeScript引用命名空间B中的命名空间a?
在src/models文件夹中,我有一个很大的枚举列表,我把它放在一个名称空间枚举中 枚举 在src/typings自定义文件夹中,我有一些使用这些枚举的接口 dto.d.ts如何使用TypeScript引用命名空间B中的命名空间a?,typescript,namespaces,Typescript,Namespaces,在src/models文件夹中,我有一个很大的枚举列表,我把它放在一个名称空间枚举中 枚举 在src/typings自定义文件夹中,我有一些使用这些枚举的接口 dto.d.ts // 命名空间DTO{ 接口病毒{ MethodType:Enums.MethodType } } 我发现将枚举名称空间引用到DTO名称空间的唯一方法是使用//行 这仍然是TypeScript v2.6的良好实践的一部分吗? 还有别的办法吗? (我尝试了导入,但它需要一个模块而不是名称空间) 谢谢大家! 导出命名空间
//
命名空间DTO{
接口病毒{
MethodType:Enums.MethodType
}
}
我发现将枚举名称空间引用到DTO名称空间的唯一方法是使用//
行
这仍然是TypeScript v2.6的良好实践的一部分吗?
还有别的办法吗?
(我尝试了导入,但它需要一个模块而不是名称空间)
谢谢大家!
导出命名空间枚举{
常量枚举方法类型{
平等,
NotEqual,
...
}
}
/*-----*/
从“/Enums”导入*作为枚举
导出命名空间枚举{
常量枚举方法类型{
平等,
NotEqual,
...
}
}
/*-----*/
从“/Enums”导入*作为枚举
管理代码的最佳方法是使用模块,而不是名称空间。要记住的一件事是
模块是具有导入
或导出
表达式的任何文件
以下是Enums.ts
模块:
export const enum MethodType {
Equal,
NotEqual,
}
以及导入MethodType
enum以供实际使用的示例:
import { MethodType } from '../models/Enums';
interface IRule {
MethodType: MethodType
}
您也可以导入“批次”,但请注意,根据您不需要的物品:
import * as Enums from '../models/Enums';
interface IRule {
MethodType: Enums.MethodType
}
理想情况下,您可以使用模块加载器加载代码,但如果您想继续使用捆绑,也可以使用工具将整个代码打包到单个文件中。管理代码的最佳方法是使用模块,而不是名称空间。要记住的一件事是 模块是具有
导入
或导出
表达式的任何文件
以下是Enums.ts
模块:
export const enum MethodType {
Equal,
NotEqual,
}
以及导入MethodType
enum以供实际使用的示例:
import { MethodType } from '../models/Enums';
interface IRule {
MethodType: MethodType
}
您也可以导入“批次”,但请注意,根据您不需要的物品:
import * as Enums from '../models/Enums';
interface IRule {
MethodType: Enums.MethodType
}
理想情况下,您可以使用模块加载器加载代码,但如果您想继续使用捆绑,也可以使用工具将整批代码打包到单个文件中。1。是的,这很有帮助,谢谢!2.您确定Enum(本例中为Pascal case)是受限词吗?有时引用对象类型时,您必须使用Pascal case,因此是
最佳实践
,以避免使用与受限词相似或相等的词。然而@Fenton实现比我的这个更合适,所以我建议你使用他的一个!1.是的,这很有帮助,谢谢!2.您确定Enum(本例中为Pascal case)是受限词吗?有时引用对象类型时,您必须使用Pascal case,因此是最佳实践
,以避免使用与受限词相似或相等的词。然而@Fenton实现比我的这个更合适,所以我建议你使用他的一个!