2017-01-27 33 views
1

私は、グローバル関数を持つサードパーティのライブラリをjQueryのように利用できます:$ .functionName()は定義ファイルがありません。だから私は自分のファイルを書いてみたいですが、参照/インポートはできません。TypeScriptのカスタム定義ファイル

declare let a:string; 

myClass { 
    constructor() { 
     console.log(a); 
    } 
} 

をしかし、私は別のファイルでそれを宣言した場合、私はそれを動作させるカント:

私は私の宣言は、それをインライン書く場合は正常に動作します

myDeclaration.d.ts

export declare let a:string; 

myClass.ts

/// <reference path="myDeclaration.d.ts" /> 

myClass { 
    constructor() { 
     console.log(a); 
    } 
} 

import * as a from "myDeclaration"も試しました。それは常に言う:Cannot find name 'a'

答えて

0

あなたはambient宣言でエクスポートを使用すべきではありません。

ただ、このように、あなた.d.tsからエクスポートを削除します。

declare let a:string 

宣言がプロジェクト全体に利用可能であるべきであるとして、通常、あなたも<reference path="">を削除することができます。

あなたは、インポートされたモジュールの定義を記述するとき、たとえば、JS NPMライブラリをexport declareを使用すると、オブジェクトは任意のインポート(例えば<script>によってインポートjQueryの)せずに世界的に利用可能になったときambient定義を使用する必要があります。

関連する問題