2017-03-15 5 views
1

私はTypescriptで始まり、新しいモジュールを作成しようとしましたが、いくつか問題があります。d.tsファイルエクスポートモジュール

私はindex.tsにjsファイルをインポートしたいので、typescriptの関数を作成して説明するためにd.tsファイルを作成しなければならないことがわかります。

import Toto from "./toto";

そして、これは私のd.tsファイルです:私のindex.tsに私はこれを入れ

しかし、私のd.tsに

declare module 'Toto' { 
 

 
    function myfunction(callback : Function); 
 

 
    export default myfunction; 
 

 
}
ファイル:私はこのエラーがあります:

TS1128:宣言または声明が期待される

なぜ私のテストはとても簡単なのか分かりません。私はコードをビルドするためにWebPACKの使用

が、これは私のwebpack.config.js

module.exports = { 
 
    entry: "./index.ts", 
 
    output: { 
 
     path: "bundle/", 
 
     filename: "bundle.js" 
 
    }, 
 
    resolve: { 
 
     extensions : [".ts", ".tsx", ".js"] 
 
    }, 
 
    module: { 
 
     loaders: [ 
 
      { test: /\.tsx?$/, loader: "ts-loader" } 
 
     ] 
 
    } 
 
};

そして、私のtsconfig.json

{ 
 
    "compilerOptions": { 
 
    "target" : "es5" 
 
    } 
 
}

です

あなたは直接だけでコンパイラオプションで「allowJS」フラグを設定したファイルを.jsファイルにロードしたい場合は、任意のアイデア:)

よろしく

+0

あなたの 'd.ts'ファイルは一度置かれますか?> –

+0

index.tsと同じ場所にあります。 – djdelarue

+0

_jsファイルをインポートしたいのですが、コードを表示します –

答えて

0

を持っている場合。 TSはJSに基づいて型推論を試みます。 TS Compiler options

したがって、コンパイラオプションにallowJSフラグを追加し、d.tsファイルをスキップします。

0

私にとってこのセット・アップ作品node main.jsを実行すると、正しく42

また toto.d.ts定義を削除し、セットアップを上から allowJs

  • を使用して

    をログに記録します

    //toto.js 
    function myfunction(callback) { 
        callback("42") 
    }  
    exports.default=myfunction 
    
    
    //toto.d.ts 
    export default function myfunction(callback : Function); 
    
    
    //main.ts 
    import myfunc from './toto'  
    myfunc((res) => console.log(res)) 
    
    
    //tsconfig.json 
    { 
        "compilerOptions": { 
         "target" : "es5" 
        } 
    } 
    

    ファイル

  • のTSconfigのcompilerOptionsに"allowJs":trueを追加

=>最初のソリューションは、定義ファイルの工芸が必要ですが、main.tsmyfuncを使用するときには、タイピングの恩恵を受ける。

0

は、最後に私は知らない...私のEDI(phpStorm)が古すぎるだったと私は活字体2.2.1にあったのに対し、それが活字体1.4でコードをコンパイルし、あなたのフィードバックのための

おかげで私の問題を発見しました私はこのオプションallowJsを使用することができますが、私はtypedocで私のコードを文書化したいと私はそれを行うためにこのd.tsファイルを作成する必要があるので私のためにはお勧めしません。

関連する問題