web-dev-qa-db-ja.com

すべてのファイルで参照されない限り、TSファイルで名前「$」を見つけることができません

Visual Studio 2015でTypeScriptをセットアップしています。TSファイルでjqueryを使用します。 jqueryを使用すると、VSは '$'に下線を引き、名前が見つからないというメッセージを表示し、正常にビルドしません。ビルドする唯一の方法は、各TSファイルにjqueryタイピングへの参照を追加する場合です。 /// <reference path="typings/index.d.ts" />とにかくこの参照をすべてのファイルに追加する代わりにグローバルに使用することはできますか?

Visual Studioコードでは、この問題は発生しません。

私のディレクトリは次のようになります-Scripts --ts --- typings --- main.ts tsconfig.json --js

ルートの私のtasks.jsonファイル

    {
    "version": "0.1.0",

    // The command is tsc. Assumes that tsc has been installed using npm install -g TypeScript
    "command": "tsc",

    // The command is a Shell script
    "isShellCommand": true,

    // Show the output window only if unrecognized errors occur.
    "showOutput": "silent",

    // Tell the tsc compiler to use the tsconfig.json from the open folder.
    "args": ["-p", "../Scripts/Weblink/ts"],

    // use the standard tsc problem matcher to find compile problems
    // in the output.
    "problemMatcher": "$tsc"
}

scripts/tsのtaskconfig.json

{
"compileOnSave": true,
"compilerOptions": {
    "noImplicitAny": false,
    "noEmitOnError": true,
    "removeComments": false,
    "sourceMap": true,
    "target": "es5",
    "outDir": "../lib/"
},
"exclude": [
    "typings/*"
]
}
18
stanggt3

TypeScript 2.xでは、次のようにタイピングをインストールする必要があります。

npm install --save @types/jquery

その後:

import * as $ from "jquery";

参照する必要はありません。TypeScriptが自動的に処理します。

詳細

32
lenny
  • npm:を使用するTypeScript 3の場合

    npm install --save-dev @types/jquery

    そして:

    import "jquery";

    エイリアスは必要ありません。

  • npm:を使用しない場合

    declare module 'jquery';を含む新しい宣言(jquery.d.ts)ファイルを追加します

    そして:

    import "jquery";

0
Roque Orts

tsconfig.jsonに追加します。

"moduleResolution": "node",
"lib": [ "es2015", "es2017", "dom" ]
0
AlexGH