0

私は、アプリケーションでIoC/DIフレームワークを実装しようとしています(他の推奨事項がある場合はInversifyを考えています)。しかし、引き続きタイプにファイルを含める必要があります。私たちはこれをどのように回避するのですか?私たちはTypeScriptの最新バージョン(これを書いている時点では2.3)を使用しています。クラスをインポートしないTypeScript型ですか?

私たちは、例えば、様々なタイプの輸入の多くを持っている:

// Components 
import {GuideTime} from '../components/guide-time/guide-time.component'; 
import {GuideNetwork} from '../components/guide-network/guide-network.component'; 
import {GuideDetail} from '../components/guide-detail/guide-detail.component'; 
import {Player} from '../components/player/player.component'; 

// Services 
import {Keys, KeyService} from '../core/services/key.service'; 
import {GuideService} from '../core/services/guide/guide.service'; 
import {afterCSSUpdate} from '../core/services/utility.service'; 
import {DataService} from '../core/services/data/data.service'; 

それとも、何かの種類を取得するには、次の

import {ITitle} from '../../models/title.interface'; 
import {IGuide} from '../../models/guide.interface'; 

を好ましくは自動的に(これらを統合する方法はありますが、またはグローバルに)?私はおそらくどこかでmytypes.tsファイルを作ってから、アプリケーションからすべてのタイプをインポートしてエクスポートすることができるので、インポートする単一の中央ファイルがありますが、それは他の問題(および多くの作業)をもたらします。

ありがとうございます!

答えて

0

これらのすべてをグローバルにするには、それらをすべて1つのインターフェイスにインポートしてから、すべてのタイプにアクセスする必要がある場所でインターフェイスをインポートする必要があります。これは実際にはお勧めしませんが、また

import * as mainInterface from 'MainInterface' 

に似た何かが、あなたは、(あなたがタイプへのアクセス権を与えることになる)のみの副作用のためにインポートしてみてください。

the documentationから:

練習をお勧めしていないが、いくつかのモジュールが他のモジュールで使用することができ、いくつかのグローバルな状態を設定します。これらのモジュールには輸出がないか、消費者は輸出に関心がありません。これらのモジュールをインポートするには、使用:import "./my-module.js";

EDITまた、上記単一のインターフェース・ソリューションと同様に、あなたは同じ名前空間への各タイプを置くことができます。 spread a namespace across multiple files using this approachにすることができます。つまり、メインの名前空間に各タイプをラップするだけです。

namespace MainNamespace { 

    export class GuideTime { 
     ... 
     } 
    ... 
} 
+0

これは興味深い解決策ですが、TSLintと私がオンラインで読んだことは、名前空間の使用を推奨しています。私はなぜ、どういうわけか分からない。あなたは説明できますか? –

+0

@ChrisSimpson彼らは一般的な名前空間に対して勧めましたか?あるいは、特にこの問題を解決するために?なぜ彼らが彼らに抗議するのか分からない。名前空間の解決策はあなたの問題を解決しますか? – James

+0

TSLintはそれを好まず、オンラインの多くのソース(TypeScriptハンドブックを含む)は、モジュールのために名前空間を使うべきではないと言っています。とにかく私はそれを取り巻くことができると知っていますが、耐性を持っているようなものを使わない別のアプローチがあるはずです。 –

関連する問題