0

Typescriptで名前空間を正しく使用していない可能性がありますが、解決しようとしている問題は次のとおりです。

クラスを作成するとき、次のように require を使用して、他のすべてのファイルを参照する必要があります。

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

次のようなクラスを構築できるようにする場合は、毎回これらの 2 行を追加する必要があります。

var class = new DependencyClass();

私のプロジェクトは大規模なものにする予定で、すでにいくつかのクラスが必要なので、このファイルを一度だけ参照する必要があるように、すべてのクラスへの参照を持つ ClassStore.ts という名前のファイルを作成する必要がありました。

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

これを行うことは可能ですか?名前空間で何か不足していますか?

複数のエクスポートを含むファイルからインポート クラスとインターフェイスをエクスポートしようとすることに注意してください。1 つはインターフェース用で、もう 1 つはその実装用です。

私のプロジェクト (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();

次のエラーが表示されます: Uncaught TypeError: 未定義のプロパティ '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 に答える