2017-04-18 18 views
0

を「見る」ことはできません。d.tsファイルは、私がこのような構造を持つ型宣言

dts/ 
    my-types.d.ts 
lib/ 
    a.ts 
    a.d.ts 
    b.ts 
    b.d.ts 

a.tsとb.tsの両方が特定の型を参照、のはIFooそれを呼び出すことができます。

彼らはIFooを共有しているので、その宣言を共有場所に入れたいので、IFooをdts/my-types.d.tsに入れます。

次のようになります。

interface IFoo { 
    [key: string]: any 
} 

は感覚が正しいせるのか?

しかし、私が持っている問題は、もはや見つけることができます私の宣言ファイルが作成されるとIFoo

a.d.ts 
b.d.ts 

IFooで、a.ts、b.ts、およびc.tsに認識されているが、ということではありませんそれらのファイルに例えば、私が持っているd.tsファイルのいずれかで:

declare var _default: (depList: string[], depContainerObj: IFoo) => Promise<any>; 
export = _default; 

IFooが見つかりません。何故ですか?これをどうすれば解決できますか?

ここはヒントです!

私はこの変更:今の状況が逆転した

export interface IFoo { 
    [key: string]: any 
} 

- 私のd.tsファイルは、インターフェイスを見ることができますが、私の.TSファイルのことはできません。これに

interface IFoo { 
    [key: string]: any 
} 

を!何が起こっている?

答えて

1

何が起こっているのですか?

モジュールの一貫性のない使用。可能な限りグローバルではないモジュールを使用してください。だからexport interface IFoo {

私のd.tsファイルは、インターフェイスを見ることができますが、私の.tsファイルはできません!何が起こっている?

IFooを含むファイルを、必要なファイルごとにインポートします。 a.ts:

import {IFoo} from "./foo"; 
// now use IFoo 

もっと

多くのモジュール https://basarat.gitbooks.io/typescript/content/docs/tips/outFile.html

+0

おかげについて言われました、「私のモジュールがなるので、私は確かに、モジュールではなく、名前空間を使用する必要があるように見えるので、外部 "? –

関連する問題