2017-03-27 4 views
0

Typescriptと型をかなり新しくしています。私はVisual Studio Codeを使用していて、WebMIDIインターフェイス(一部のブラウザではjavasccript APIを使用可能)の自動補完を期待しています。私はこのようなwebmidiタイピングインストールMap <Type1、Type2> WebMIDIの型定義で定義されていない、マップの定義を取得する場所を明確にしない

:インストールした後

D:\Mike\Dev\WebMIDI\WebMidiTest>typings install --global dt~webmidi 
webmidi 
`-- (No dependencies) 

を、Visual Studioのコードはまだ関与タイプのすべてを理解していないようです。実際にwebmidiのindex.d.tsファイルを見ると、MapPromiseクラスの下に赤い下線が表示されていました。

"es6-collections"の入力パッケージをインストールすることで、マップがどのようなものかを知るためにVisual Studio Codeを取得できました。私はtypings install dt~promiseもいくつかの定義をPromiseの定義をインストールしようとしましたが、Visual StudioコードはまだWebMIDI定義ファイルに含まれているPromiseの使用法を理解していないようです。

WebMIDI型のバグは、依存関係を正しく指定していないのですか? typings installを実行すると、他の入力パッケージに依存する入力パッケージが自動的にインストールされるべきですか?それとも私がここで行方不明になっていることがありますか?

答えて

1

typingsツールを使用する必要はありません。ちょうどnpm install --save-dev @types/webmidiを実行してください。 TypeScriptは@typesフォルダ内のあなたのタイプを識別します。

+0

が表示されます。ちょうど昨日のように、タイピングツールはタイピングを得るための最新かつ最高の方法だと言った記事を読んでいるようです。トラックを維持するのは難しいが、依存関係に関しては、npmはうまくいくようだ。しかし、 '' 'npm install --save @ types/webmidi'''を実行しても、マップが定義されておらず、Visual Studio Codeに下線が引かれているのと同じ問題があります。また '' 'npm install --save-dev @ ryancavanaugh/webmidi'''を試しましたが、VSCは" WebMidi "という識別子も認識しませんでした。 .d.tsファイルにnpmがインストールされているため、なぜそれが定義されたのかは明らかではありませんでした。 – uglycoyote

+0

'Map 'は 'webmidi'定義の一部ではないからです。それはes6標準の一部です。 '' lib ":[" es6 "]'を 'tsconfig.json'の' compilerOptions'に追加できますか? – Saravana

+0

私はMapがwebmidiにないことを認識します。質問は、1)Webmidiの型定義を別の型定義パッケージへの依存関係を指定しないことによってバグとみなすべきかどうか、および2)Mapの定義を見つけるための「正しい」場所はどこであるかです。私は '' 'npm install --save @ types/es6-collections''が依存関係を満たしているが、これが正しいかどうかは不明です。私はあなたの提案を '' lib:es6'''(es6-コレクションなし)しようとしました。この解決されたマップも同様ですが、多くの他の識別子は未定義です。 EventTarget、Eventなどを取得し、取得する場所を明確にしないでください。 – uglycoyote

関連する問題