Angular 1.xを新しいTS2および@typesレジストリで使用しようとしていますが、問題が発生しています。@ typesは、タイピングレジストリが「グローバル」タイピングと呼んでいたものを使用していないようです。次のエラーが発生しています:
error TS2686: 'angular' refers to a UMD global, but the current file is a module. Consider adding an import instead.
angularコードは次のとおりです。
import "angular";
import "angular-route";
const app = angular.module("charter-app", ["ui.bootstrap", "ui.router", "templates", "charter-app.controllers"]);
tsconfig.json:
{
"compilerOptions": {
"declaration": false,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"mapRoot": "./",
"module": "system",
"moduleResolution": "node",
"sourceMap": true,
"target": "es5",
"inlineSources": true,
"removeComments": false,
"noImplicitAny": false,
"typeRoots": [ "node_modules/@types/" ],
"types": [ "angular", "angular-ui-bootstrap", "angular-ui-router" ],
"outFile": "app.js"
}
}
以下を使用しようとしています
"devDependencies": {
"@types/angular": "^1.5.20",
"@types/angular-ui-bootstrap": "^0.13.35",
"@types/angular-ui-router": "^1.1.34",
コンパイルにはgulp-TypeScriptを使用しています。何が欠けていますか?この目的で@typesライブラリを使用できませんか?
私はWebstormのファイルウォッチャーを構築していたIDEこの問題に遭遇しました。それを解決するには、@types/angular
を削除し、typings angular
を追加し、typings angular
を追加して、オプションに--types {your file dir}/typings/index.d.ts
を追加します。同様に、それをtsconfig.json
に追加できます
これがあなたが望んでいた解決策ではないことは知っていますが、それはそのこぶを乗り越えました。