2017-04-01 12 views
0

私は自分の型を外部型から拡張しようとしています。Typescript定義ファイルと拡張外部型

私は何をしているのか分からないので、これらをglobal.d.tsファイルに入れています。

これを行う前に、プロジェクト内のすべてのタイスクリプトファイルにタイプをインポートしていましたが、これは間違っていて乱雑です(各ファイルの先頭に30行のインポート行)。

global.d.tsは、私はちょうど私のコードを持って作品をファイルに私の理解がある停止し

// successfully can use this anywhere 
interface IPerson { 
    name: string 
} 

私は外部のだ1を拡張する必要があるタイプを持っている場合。

(たとえば、Reduxアクションタイプを拡張しようとしています)私は成功しtypescriptですが、私は今IPersonを使用するすべてのファイルは、もはや見つけることができない場合を除き、この

import * as Redux from 'redux'; 

interface IPerson { 
    name: string 
} 

interface PersonAction extends Redux.Action { 
    person?: IPerson 
} 

にファイルを変更した場合、それは「名前のアクション」を見つけることができないという不満を停止するために得ることができます

/// <reference path="../node_modules/redux/index.d.ts" /> 

interface IPerson { 
    name: string 
} 

// even with the reference typescript 'cannot find name Action' 
interface PersonAction extends Action { 
    person?: IPerson 
} 

それ。なぜか分からない。宣言ファイルにインポートを追加するたびに、それ以外のすべてが中断されますが、宣言ファイルは修正されます。

私はここで間違っていますか?私はすべての自分のタイプを置くことができる場所を探しています。もし私のタイプを認識するためにtypescriptを得る良い方法があれば、私は他のオプションを利用できます。

私はあなたがあなたのモジュールからのインターフェイスを exportする必要があると思う

答えて

0

import * as Redux from 'redux'; 

export interface IPerson { 
    name: string 
} 

export interface PersonAction extends Redux.Action { 
    person?: IPerson 
} 

、その後import同じ使用の場所で:

import {IPerson, PersonAction} from 'your-module' 

P.S.それは問題ではありませんが、loose the 'I' from the name of interfacesにすることをお勧めします。

関連する問題