Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用TypeScript引用命名空间B中的命名空间a?_Typescript_Namespaces - Fatal编程技术网

如何使用TypeScript引用命名空间B中的命名空间a?

如何使用TypeScript引用命名空间B中的命名空间a?,typescript,namespaces,Typescript,Namespaces,在src/models文件夹中,我有一个很大的枚举列表,我把它放在一个名称空间枚举中 枚举 在src/typings自定义文件夹中,我有一些使用这些枚举的接口 dto.d.ts // 命名空间DTO{ 接口病毒{ MethodType:Enums.MethodType } } 我发现将枚举名称空间引用到DTO名称空间的唯一方法是使用//行 这仍然是TypeScript v2.6的良好实践的一部分吗? 还有别的办法吗? (我尝试了导入,但它需要一个模块而不是名称空间) 谢谢大家! 导出命名空间

在src/models文件夹中,我有一个很大的枚举列表,我把它放在一个名称空间枚举中

枚举

在src/typings自定义文件夹中,我有一些使用这些枚举的接口

dto.d.ts

//
命名空间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实现比我的这个更合适,所以我建议你使用他的一个!