Microsoftの新しいvsCodeテキストエディターでインテリセンスがどのように機能するかを理解していない。 "Great Code Editing Experience"見出しの下の docs で、ノードのグローバル変数の下に警告が表示されます__dir
そして、ノードのインテリセンスを取得できるようにd.tsファイルへの参照を追加するための電球の提案を提供します。
2つの質問があります。
1-どのように DefinitelyTyped ファイル(d.ts)を直接(エディターからの提案なしに)インポートするか、githubソースからコピーしてタイピングディレクトリに配置する必要がありますか?
2-TypeScript定義を持つライブラリのインテリセンスを取得できますか?以下を試してみましたが、express.
またはwhen.
と入力すると、インテリセンスが得られません。ただし、ノードインテリセンスは取得します。
/// <reference path="../typings/node/node.d.ts"/>
/// <reference path="../typings/express/express.d.ts" />
var when = require('when')
, express = require('express')
, gulp = require('gulp')
更新:2016年8月:TSDは現在減価償却されています。代わりに https://www.npmjs.com/package/typings を使用してください
npm install typings --global
OR
2016年7月29日にリリースされたVS2015 NodeJS v1.2を使用する場合、typings-core @ 1.3.1は最初の使用時に自動的にインストールされます。
Executing command 'npm install "C:\PROGRAM FILES (X86)\Microsoft VISUAL STUDIO 14.0\COMMON7\IDE\EXTENSIONS\Microsoft\NODE.JS TOOLS FOR VISUAL STUDIO\1.2\TypingsAcquisitionTool"
[email protected] ..\..\..\..\..\node_modules\ntvs-typings-acquisition-tool
├── [email protected]
└── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected])
-----元の回答-----
here の指示に従ってtsdをインストールできます。
Tsdをグローバルにインストールしたら、次のようにコマンドラインでプロジェクトルートからパッケージをインストールできます。
$ tsd install express --save
これにより、タイピングディレクトリが存在しない場合は作成され、express.d.ts
ファイルを含むエクスプレスディレクトリが追加されます。
また、すべてのtsdファイルへの参照を含むtsd.d.ts
ファイルも作成します。 tsdをさらにインストールすると、次のようになります。
Tsdファイルにアクセスするには、コードの先頭で/// <reference path="typings/tsd.d.ts" />
を使用してパスを参照するだけです。
今、私はインテリセンスを取得します。
2016年1月、「tsd」パッケージは廃止されました。代わりに「typings」パッケージを使用してください。
https://github.com/DefinitelyTyped/tsd/issues/269 を参照してください
そして、VS Code(ext install)に2つのエクステンション-Typings InstallerおよびTypingsVS Codeからd.ts定義ファイルを簡単にインストールできます。
Explicit Projectモードで作業しているかどうかを確認します(REF: https://code.visualstudio.com/Docs/languages/javascript# _javascript-projects-jsconfigjson )
Explicit Project Modeでは、VS Codeはintellisenseのtypingsフォルダーの下にある「main.d.ts」ファイルを使用します。このファイルには他の定義ファイルへの参照があるため、インテリジェンスは完璧に機能します。私の場合、main.d.tsは次のようになります
/// <reference path="main/ambient/express-serve-static-core/index.d.ts" />
/// <reference path="main/ambient/express/index.d.ts" />
/// <reference path="main/ambient/node/index.d.ts" />
/// <reference path="main/ambient/serve-static/index.d.ts" />
ファイルスコープモードでは、VS Codeはタイピング定義をチェックしないため、インテリジェンスはありません。このような場合にインテリジェンスを追加するには、定義を手動で参照するときに参照タグが便利です。手動で参照している場合は、特定のライブラリの定義に進むのではなく、タイピングの下のmain.d.tsを参照してください。これにより、コードの参照密度が低くなります。
また、jsconfig.jsonに相当するTypeScriptはtsconfig.jsonであることに注意してくださいまた、エディターを明示的プロジェクトモードに設定します。
これは、2017年4月のリリース後にjsconfig.jsonファイルで実現できます。
ファイルのサンプルコンテンツ:
{
"typeAcquisition": {
"include": [
"jquery",
"underscore"
]
}
}
VSCodeについてはjsoncifg.jsonリファレンスを参照してください here。
https://github.com/borisyankov/DefinitelyTyped からexpress.d.ts
ファイルをダウンロードし、プロジェクトディレクトリに関連するパスでそれを参照することにより、Expressで動作するExpress IntelliSenseを取得しました。
/// <reference path="express.d.ts"/>
/typings
が何を指しているのかを探しています。プロジェクト設定の一部としてd.ts
ファイルを設定するのもいいかもしれません。
編集:
それを見つけた。
~/Downloads/VSCode-osx
▶ find . -type d -name "typings"
./Visual Studio Code.app/Contents/Resources/app/node_modules/applicationinsights/Scripts/typings
そのため、デフォルトではOSX .appにnode
、async
、およびapplicationInsights
がバンドルされています。あなたが望む他のものは、私が上でやったように単純に含めることができると思います。
編集編集:
@kurtcorbettが言及している tsdパッケージマネージャー は見栄えが良いので、それを使用します。
パッケージのタイプ定義を自動的にインストールする場合は、 Types auto installer 拡張機能をダウンロードできます。 package.json
およびbower.json
を監視し、タイプを自動的にインストールします。
この拡張機能の最大の利点は、npmを介してタイプをインストールするため、コードに/// reference
行を含める必要がないことです。
私がやったのは、電球に触れて、node/node.d.tsへの参照をプロジェクトに追加するというオプションを選択することでした。
その後、次のように書きました。