2

Typescript で書かれた NPM パッケージに取り組んでいます。現在、そのすべてのクラスとインターフェースをパッケージ化した方法を次に示します。これは機能しますが、非常に反復的で、あまりクリーンではないようです (特に、空のクラスとインターフェイスの拡張機能)。どうすればこれを改善できますか?

編集: クラス拡張機能を使用するようにメインの NPM ファイルを変更しました。これにより、繰り返しがなくなるため、すべてがより保守しやすくなります。ただし、すべてのクラスが実質的に 2 回定義されるため、おそらく遅くなります。

Deck.ts (メインの NPM ファイル)

/// <reference path="../d.ts/DefinitelyTyped/node/node.d.ts" />

import DeckDatabasePostgresClient = require('./Database/Postgres/Client');
import DeckDatabasePostgresConfigInterface = require('./Database/Postgres/ConfigInterface');
import DeckApp = require('./App');
import DeckRoute = require('./Route');
import DeckRouter = require('./Router');

module Deck {
    export module Database.Postgres {
        export class Client extends DeckDatabasePostgresClient {}
        export interface ConfigInterface extends DeckDatabasePostgresConfigInterface {}
    }
    export class App extends DeckApp {}
    export class Route extends DeckRoute {}
    export class Router extends DeckRouter {}
}

export = Deck;

Typescriptで次のようなことが可能ですか?

module Deck {
    export import App = require('./App');
}

現在、これにより次のエラーが発生します。

Import declarations in an internal module cannot reference an external module.
4

1 に答える 1