0

也许我没有在 Typescript 中正确使用命名空间,但这是我要解决的问题。

创建类时,我需要使用如下的要求来引用我的所有其他文件。

import DependencyModule = require("Path.../DependencyModule");
import DependencyClass = DependencyModule.DependencyClass;

如果我希望能够像这样构造类,每次我需要添加这两行:

var class = new DependencyClass();

因为我的项目打算很大,而且我已经需要几个类,所以我将拥有一个名为 ClassStore.ts 的文件,该文件将引用所有类,因此我只需要引用这个文件一次。

import ModulesStore = require("ClassStore");
var class = new ModulesStore.DependencyClass();

是否有可能做到这一点?我错过了命名空间的东西吗?

请注意,我尝试从包含多个导出的文件中导出导入类和接口。一种用于接口,一种用于实现。

这是我的项目(DependencyClass.ts)的典型文件架构:

export interface IDependencyClass { ... }
export class DependencyClass { ... }

这是我在“ClassStore”中尝试过的:

// ClassStore.ts
export import DependencyModule = require("DependencyClass");

// Other file needing the DependencyClass
import ClassStore = require("ClassStore");
var class = new ClassStore.DependencyModule.DependencyClass();

我收到以下错误:未捕获的类型错误:无法读取未定义的属性“DependencyClass”。

谢谢您的帮助。

4

1 回答 1

0

是否有可能做到这一点?我错过了命名空间的东西吗?

是的。从DependencyModule,导出类=

class Foo{}
export = Foo;

使用一个index.ts(或任何你想称之为import/exports的)所有类,例如

export import DependencyModule = require("Path.../DependencyModule");
export import DependencyModule2 = require("Path.../DependencyModule2");

然后你可以这样做:

import Index = require("Path.../Index");
var foo = new Index.Foo();
于 2014-08-09T01:04:47.317 回答