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);
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
@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" "*"
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'.