Definitelytyped: @ types / angular-ui-router | angular-ui-bootstrap | angular-translate "Le module 'angular' n'a pas de membre exporté 'ui'"

Créé le 17 juil. 2016  ·  19Commentaires  ·  Source: DefinitelyTyped/DefinitelyTyped

  • [x] J'ai essayé d'utiliser le dernier fichier angular-ui-router/angular-ui-router.d.ts dans ce dépôt et j'ai rencontré des problèmes.

angular-ui-router ne fonctionne pas lors de l'utilisation de @ types / angular-ui-router.

"Module 'angular' has no exported member 'ui'"

chaque fichier est maintenant rouge et ne se compile pas

On dirait qu'avoir un <reference types="angular" /> côté d'un import * as angular from 'angular'; ne fonctionnera pas

La même chose se produit avec angular-ui-bootstrap

Les modules qui dépendent de @types/angular sont carrément cassés. Je n'utilise pas de variable globale angulaire et quand je fais import * as angular from 'angular' alors j'essaye d'accéder à un espace de noms de module, tel que angular.ui.bootstrap , angular.translate , angular.ui , ils tous donnent l'erreur Module 'angular' has no exported member 'ui'

le code ci-dessous échoue:

'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

Commentaire le plus utile

Même problème ... Juste installé @ types / angular

angulaire importé dans un fichier dactylographié:
importer * comme angulaire de «angulaire»;

Cependant, l'espace de noms ui n'est pas disponible sur ng.

Obtenir:

Le module 'angular' n'a pas de membre exporté 'ui'.

Tous les 19 commentaires

Cela devrait être corrigé par https://github.com/DefinatelyTyped/DefinatelyTyped/pull/10170

vous pouvez soit l'utiliser comme module:

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);

ou en tant que global mais utilisez /// <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 est-ce le nouveau comportement pour 2.0+ lors de l'utilisation de @types ? Vous ne pouvez pas avoir de "vrais" globaux que vous incluez une fois et qui sont disponibles partout?

@types/angular-ui-router et @types/angular-ui-bootstrap sont toujours cassés btw

clipboard01

@mhegazy est-ce le nouveau comportement pour 2.0+ lors de l'utilisation de @types? Vous ne pouvez pas avoir de "vrais" globaux que vous incluez une fois et qui sont disponibles partout?

vous pouvez. /// <reference types="angular" /> devrait rendre ng disponible dans votre compilation.

@ types / angular-ui-router et @ types / angular-ui-bootstrap sont toujours cassés btw

la dernière en https://github.com/DefinitelyTyped/DefinatelyTyped/tree/types-2.0 me semble juste. pouvez-vous indiquer ce qui ne fonctionne pas pour vous?
comment importez-vous angulaire?

J'utilise import * as angular from 'angular' . quand j'essaye d'utiliser angular.ui.IStateProvider (à partir de angular-ui-router ), il n'existe pas en angular. même si j'ajoute le routeur angular-ui-router dans un autre fichier (mon module de base), je dois maintenant l'inclure dans chaque fichier?

vous devez également l'importer. import "angular-ui-router"; ou ajoutez-y une référence de types /// <reference types="angular-ui-router" />

veuillez faire un changement dans tsconfig.json qui le fasse se comporter à l'ancienne, je ne peux pas refactoriser mon projet en ce moment même :(

veuillez faire un changement dans tsconfig.json qui le fasse se comporter à l'ancienne

quelle est la «vieille» manière?

si vous utilisez des fichiers de déclaration obtenus à partir de typages ou de tsd, cela devrait fonctionner sans changement. ceci est uniquement pour les packages @types sur npm. si vous ne souhaitez pas les utiliser pour le moment, vous n'êtes pas obligé de le faire.

J'ai aussi le même problème.

Même problème ... Juste installé @ types / angular

angulaire importé dans un fichier dactylographié:
importer * comme angulaire de «angulaire»;

Cependant, l'espace de noms ui n'est pas disponible sur ng.

Obtenir:

Le module 'angular' n'a pas de membre exporté 'ui'.

Pourquoi est-ce fermé? Cela signifie-t-il que cela ne sera jamais réglé ou y a-t-il un autre problème? (toujours cassé pour moi)

Toujours cassé pour moi aussi

Et est toujours

@asadsahi C'est parce que @types/angular n'a en fait aucun membre ui . Ce membre est défini par @types/angular-ui-router .

Qui doit être installé séparément:

npm i -D @types/angular-ui-router

Quelqu'un a encore trouvé une solution?
@mhegazy pourrais-tu rouvrir le ticket?

Je viens de recevoir ce problème en essayant de mettre à niveau angular-ui-router de 1.0.0-beta.1 à 1.0.0-rc.1. Je veux aussi mettre à jour TS et me débarrasser de la saisie en faveur de @types ... Tout cela, j'ai obtenu dans l'application angular1 générée par yeoman-fountain. Cela me met en colère parce que je perds mon temps :(
@mhegazy pourrais-tu rouvrir le ticket?

C'est toujours un problème. Ma solution de contournement pour le moment:

    "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"

Parfois, je dois simplement exécuter la tâche manuellement, mais la plupart du temps, c'est fait avec un script de post-installation.

J'ai eu la même erreur Module 'angular' has no exported member 'xxx'. après avoir mis à niveau ma dépendance à @types/[email protected] .
Dans mon cas, il était lié à plusieurs définitions de type angulaire dans mes node_modules. Les types angulaires ont été définis dans node_modules/@types/angular et dans node_modules/@types/ng-file-upload/node_modules/@types/angular .

Cela était dû au fait que le fil résolu angulairement avec différentes versions. J'avais deux entrées pour angulaire avec une résolution différente dans le fichier yarn.lock:

"@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" "*"

La suppression de yarn.lock et la réexécution de l'installation de yarn ont résolu le problème, mais cela a modifié trop d'autres dépendances dans mon cas.

L'utilisation de yarn install --flat aurait probablement résolu le problème, mais je ne voulais pas changer la façon dont toutes les dépendances sont résolues.

J'ai donc résolu le problème en modifiant manuellement le fichier yarn.lock en

"@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" "*"
Cette page vous a été utile?
0 / 5 - 0 notes