Definitelytyped: @ types / angular-ui-router | angular-ui-bootstrap | angular-translate "モジュール 'angular'にはエクスポートされたメンバー 'ui'がありません"

作成日 2016年07月17日  ·  19コメント  ·  ソース: DefinitelyTyped/DefinitelyTyped

  • [x]このリポジトリで最新の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.bootstrapangular.translateangular.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);
@types Bug

最も参考になるコメント

同じ問題... @ types / angularをインストールしたばかり

typescriptファイルにインポートされたAngular:
'angular'からangularとして*をインポートします。

ただし、UI名前空間はngでは使用できません。

取得:

モジュール「angular」には、エクスポートされたメンバー「ui」がありません。

全てのコメント19件

これは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はまだ壊れています

clipboard01

@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.IStateProviderangular-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/angularnode_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" "*"
このページは役に立ちましたか?
0 / 5 - 0 評価