angular-ui-router/angular-ui-router.d.ts
ファイルを使用しようとしましたが、問題が発生しました。@ types / angular-ui-routerを使用すると、angular-ui-routerが機能しません。
"Module 'angular' has no exported member 'ui'"
すべてのファイルが赤くなり、コンパイルされなくなりました
持つようになります<reference types="angular" />
一緒にimport * as angular from 'angular';
動作しません。
同じことがangular-ui-bootstrapでも起こります
@types/angular
依存するモジュールは完全に壊れています。 私は角度グローバル変数を使用していません。 import * as angular from 'angular'
を実行すると、 angular.ui.bootstrap
、 angular.translate
、 angular.ui
などのモジュール名前空間にアクセスしようとします。すべてエラーModule 'angular' has no exported member 'ui'
与える
以下のコードは失敗します:
'use strict';
import * as angular from 'angular';
class Config {
static $inject = ['$stateProvider', '$urlRouterProvider'];
constructor($stateProvider: angular.ui.IStateProvider, $urlProvider: angular.ui.IUrlRouterProvider) {
/*...*/
}
}
angular.module('Module', []).config(Config);
これはhttps://github.com/DefinitelyTyped/DefinitelyTyped/pull/10170で修正する必要があり
モジュールとして使用することもできます。
import * as angular from 'angular';
import "angular-ui-router";
class Config {
static $inject = ['$stateProvider', '$urlRouterProvider'];
constructor($stateProvider: angular.ui.IStateProvider, $urlProvider: angular.ui.IUrlRouterProvider) {
/*...*/
}
}
angular.module('Module', []).config(Config);
またはグローバルとして、ただし/// <reference types=... />
使用します
/// <reference types="angular" />
/// <reference types="angular-ui-router" />
class Config {
static $inject = ['$stateProvider', '$urlRouterProvider'];
constructor($stateProvider: angular.ui.IStateProvider, $urlProvider: angular.ui.IUrlRouterProvider) {
/*...*/
}
}
angular.module('Module', []).config(Config);
@mhegazyは、 @types
を使用する場合の2.0以降の新しい動作ですか? 一度含めた「真の」グローバルを持つことはできず、どこでも利用できますか?
@types/angular-ui-router
と@types/angular-ui-bootstrap
はまだ壊れています
@mhegazyは、
あなたはできる。 /// <reference types="angular" />
は、コンパイルでng
使用できるようにする必要があります。
@ types / angular-ui-routerと@types / angular-ui-bootstrapはまだ壊れています
https://github.com/DefinitelyTyped/DefinitelyTyped/tree/types-2.0の最新版は私には正しく見えます。 何がうまくいかないのか指摘できますか?
どのようにAngularをインポートしていますか?
import * as angular from 'angular'
ます。 angular.ui.IStateProvider
( angular-ui-router
)を使おうとすると、角度がありません。 別のファイル(ベースモジュール)にangular-ui-routerを追加している場合でも、すべてのファイルに含める必要がありますか?
それもインポートする必要があります。 import "angular-ui-router";
またはそれに型参照を追加します/// <reference types="angular-ui-router" />
tsconfig.jsonで古い方法で動作するように切り替えてください。現時点では、プロジェクトをリファクタリングできません:(
tsconfig.jsonで、古い方法で動作するように切り替えてください
「古い」方法は何ですか?
タイピングまたはtsdから取得した宣言ファイルを使用している場合は、変更なしで機能するはずです。 これは、npmの@types
パッケージ専用です。 現時点でそれらを使用したくない場合は、使用する必要はありません。
私も同じ問題を抱えています。
同じ問題... @ types / angularをインストールしたばかり
typescriptファイルにインポートされたAngular:
'angular'からangularとして*をインポートします。
ただし、UI名前空間はngでは使用できません。
取得:
モジュール「angular」には、エクスポートされたメンバー「ui」がありません。
なぜこれが閉鎖されているのですか? それは修正されないという意味ですか、それとも別の問題がありますか? (私にとってはまだ壊れています)
私にとってもまだ壊れています
そしてまだです
@asadsahiこれは、 @types/angular
には実際にはui
メンバーがないためです。 このメンバーは@types/angular-ui-router
によって定義されます。
別々にインストールする必要があります:
npm i -D @types/angular-ui-router
誰かがまだ解決策を見つけましたか?
@mhegazyチケットを再開して
この問題は、angular-ui-routerを1.0.0-beta.1から1.0.0-rc.1にアップグレードしようとしたときに発生しました。 また、TSをアップグレードし、@ typesを優先してタイピングを削除したいと思います...これはすべて、yeoman-fountainで生成されたangular1アプリケーションで取得したものです。 私は時間を無駄にしているので、それは私の怒りになります:(
@mhegazyチケットを再開して
これはまだ問題です。 当面の私の回避策:
"fix-duplicate-dts": "rimraf node_modules/@types/oclazyload/node_modules/@types/angular && rimraf node_modules/@types/angular-ui-bootstrap/node_modules/@types/angular && rimraf node_modules/@types/ngtoaster/node_modules/@types/angular && rimraf node_modules/@types/angular-translate/node_modules/@types/angular && rimraf node_modules/@types/angular-mocks/node_modules/@types/angular && rimraf node_modules/@types/angular-gridster/node_modules/@types/angular && rimraf node_modules/@types/angular-storage/node_modules/@types/angular && rimraf node_modules/@types/ui-select/node_modules/@types/angular",
"postinstall": "npm run fix-duplicate-dts",
"postuninstall": "npm run fix-duplicate-dts"
タスクを手動で実行する必要がある場合もありますが、ほとんどの場合、インストール後のスクリプトを使用して実行します。
依存関係を@types/[email protected]
にアップグレードした後、同じModule 'angular' has no exported member 'xxx'.
エラーが発生しました。
私の場合、それは私のnode_modulesのいくつかの角度タイプ定義に関連していました。 角度タイプはnode_modules/@types/angular
とnode_modules/@types/ng-file-upload/node_modules/@types/angular
定義されました。
これは、糸が異なるバージョンで角度を解決したという事実によるものでした。 私はyarn.lockファイルに異なる解像度のangularの2つのエントリを持っていました:
"@types/angular@*":
version "1.6.7"
resolved "https://registry.yarnpkg.com/@types/angular/-/angular-1.6.7.tgz#8935a2b4a796fe7ca4f59f533f467804722fb0c4"
dependencies:
"@types/jquery" "*"
"@types/[email protected]":
version "1.6.32"
resolved "https://registry.yarnpkg.com/@types/angular/-/angular-1.6.32.tgz#fc791aad038227d9413eb5e552993e1076f8a509"
"@types/ng-file-upload@^11.1.31":
version "11.1.34"
resolved "https://registry.yarnpkg.com/@types/ng-file-upload/-/ng-file-upload-11.1.34.tgz#670fd0515c8e08668b27b7bbe30356b3b8011780"
dependencies:
"@types/angular" "*"
ヤーンロックを削除してヤーンインストールを再実行すると問題は解決しましたが、私の場合は他の多くの依存関係が変更されました。
ヤーンインストール--flatを使用すると、おそらく問題は解決しますが、すべての依存関係の解決方法を変更したくありませんでした。
そこで、yarn.lockファイルを手動で次のように変更して問題を修正しました
"@types/angular@*", "@types/[email protected]":
version "1.6.32"
resolved "https://registry.yarnpkg.com/@types/angular/-/angular-1.6.32.tgz#fc791aad038227d9413eb5e552993e1076f8a509"
"@types/ng-file-upload@^11.1.31":
version "11.1.34"
resolved "https://registry.yarnpkg.com/@types/ng-file-upload/-/ng-file-upload-11.1.34.tgz#670fd0515c8e08668b27b7bbe30356b3b8011780"
dependencies:
"@types/angular" "*"
最も参考になるコメント
同じ問題... @ types / angularをインストールしたばかり
typescriptファイルにインポートされたAngular:
'angular'からangularとして*をインポートします。
ただし、UI名前空間はngでは使用できません。
取得:
モジュール「angular」には、エクスポートされたメンバー「ui」がありません。