web-dev-qa-db-ja.com

/// <reference types = "node" />はどういう意味ですか?

TypeScriptとノードに問題があり、修正につまずきました(Nodeのprocess.envのように、「プロセス」が定義されていないというTSの不満を受け取りました)。私がしなければならなかったのは、ファイルの先頭に1行貼り付けることだけでした。

/// <reference types="node" />

構文がわかりません。 TypeScriptコンパイラはどういうわけかコメントを読んでいますか?これはどのように作動しますか?

15
cham

これらは「トリプルスラッシュディレクティブ」と呼ばれます (TypeScript docs)

そのリンクの最初の行で述べたように:

トリプルスラッシュディレクティブは、単一のXMLタグを含む単一行のコメントです。コメントの内容はコンパイラ指令として使用されます。

つまり、TypeScriptコンパイラはコンパイル時にこれを取得し、適切なアクションを実行しています。

この場合、typesディレクティブを使用しているので、このファイルはnodeタイピングに依存していることをコンパイラーに伝えています。

とはいえ、ドキュメントではtypesディレクティブについても次のように述べています:

これらのディレクティブは、d.tsファイルを手動で作成する場合にのみ使用してください

したがって、これを.tsファイルではなく.d.tsファイルに追加した場合、さらに問題が発生する可能性があります。

.tsファイルで@typesパッケージへの依存関係を宣言するには、代わりにコマンドラインまたはtsconfig.jsonで--typesを使用します。詳細については、 tstype.jsonファイルで@ types、typeRoots、typesを使用 を参照してください。

13
casieber