2017-08-30 11 views
1

JavaScriptの代わりにTypescriptを使用しているときに、エラーが発生したり型情報が失われたりする問題が発生しています。 VSコードを使用する以下の "JS"コードは実際にインポートされる変数bitcoreに関する情報を私に提供します。しかし、Typescriptを使用すると、インポートされたbitcore変数には定義ファイルがないというエラーが表示され、importの代わりにvarを使用してモジュールをインポートすると、「任意の」型付き変数が取得されます。Typescriptモジュールロードに関する情報が失われた.dtsファイル

これがTypescriptであるとすれば、私はJavascriptと同じくらい多くの型情報を取得できるはずです。

編集:tsconfig.jsonが存在せず、タイプが「any」として入力されていて、そのタイプ情報が別のもので合法的に見つかった場合、TS/Codeの隠された「隠れた」機能を発見しましたVSコードワークスペース内のファイルを開く(この場合はjavascriptファイル)、VSコードワークスペースにそのタイプ情報を「キャッシュ」して、その情報自体をTSが取得していなくても.tsファイルに表示します。

TS

import bitcore = require("bitcore-lib") 
var key = new bitcore.PrivateKey("testnet") 
console.log(key) 

enter image description here

JS

var bitcore = require("bitcore-lib"); 
var key = new bitcore.PrivateKey("testnet"); 
console.log(key); 

enter image description here

TSなしtsconfig.json /存在と入力する情報は、開封後、 "キャッシュ" から取得されていますwがtを取得した別のjavascriptファイルype情報。

enter image description here

+0

あなたのTSインポートステートメントが 'bitcore-lib"の 'import bitcore 'のようなものを読み込んではいけませんか? – Harald

+0

宣言ファイルに関して同じエラーが表示される – Sharpiro

答えて

0

活字体は、あなたがこのライブラリの定義ファイルを用意する必要がありますあなたのライブラリーを「知っている」ようにするために。
多くの場合、ライブラリ(一般的なもの)の定義ファイルはDefinitelyTypedです。
このライブラリ用にこのようなファイルを作成するには、open issueがあるので、このリポジトリを待つか、またはこのリポジトリに投稿する必要があります。

+0

定義ファイルが存在しない場合、Typescriptは実際にはJavaScriptと比較して型情報を失うことがあるというのは奇妙なようです。 – Sharpiro

+0

JavaScriptとはどういう意味ですか? – Sagi

+0

は、tsconfig.jsonが存在するとき、TSがJSよりも実際に型情報が少ないことを示すためにスクリーンショットを更新しました。 – Sharpiro

関連する問題