angular-ui-router/angular-ui-router.d.ts
Datei in diesem Repo- und hatten Probleme.Winkel-ui-Router funktioniert nicht, wenn @ Typen / Winkel-ui-Router.
"Module 'angular' has no exported member 'ui'"
Jede Datei ist jetzt rot und wird nicht kompiliert
Sieht aus wie ein mit <reference types="angular" />
neben einem import * as angular from 'angular';
wird nicht funktionieren
Dasselbe geschieht mit Winkel-ui-Bootstrap
Die Module, die auf abhängen @types/angular
sind völlig gebrochen. Ich bin nicht mit Winkel globales Variable und wenn ich import * as angular from 'angular'
dann versuchen , einen Modul - Namespace zuzugreifen, wie angular.ui.bootstrap
, angular.translate
, angular.ui
sie, alle Fehler geben Module 'angular' has no exported member 'ui'
Der folgende Code schlägt fehl:
'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);
Dies sollte durch fixiert werden https://github.com/DefinitelyTyped/DefinitelyTyped/pull/10170
Sie können es entweder als Modul verwenden:
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);
oder als ein globales , aber verwenden /// <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 ist dies das neue Verhalten für 2.0+ bei der Verwendung von @types
? Sie können keine "echten" Globals haben, die Sie einmal einschließen und die überall verfügbar sind?
@types/angular-ui-router
und @types/angular-ui-bootstrap
ist btw noch gebrochen
@mhegazy ist dies das neue Verhalten für 2.0+ bei Verwendung von @types? Sie können keine "echten" Globals haben, die Sie einmal einschließen und die überall verfügbar sind?
Sie können. /// <reference types="angular" />
sollte ng
in Ihrer Zusammenstellung verfügbar machen.
@ Typen / Winkel-ui-Router und @ Typen / Winkel-ui-Bootstrap sind btw noch gebrochen
die letzte in https://github.com/DefinitelyTyped/DefinitelyTyped/tree/types-2.0 sieht richtig für mich. Können Sie darauf hinweisen, was bei Ihnen nicht funktioniert?
Wie importieren Sie eckig?
Ich bin mit import * as angular from 'angular'
. wenn ich versuche verwenden angular.ui.IStateProvider
(von angular-ui-router
), es existiert nicht in dem Winkel. selbst wenn ich den Winkel-ui-Router in einer anderen Datei (mein Basismodul) bin das Hinzufügen, ich brauche es jetzt in jeder Datei enthalten?
Sie müssen das auch importieren. import "angular-ui-router";
oder fügen Sie einen Typverweis hinzu /// <reference types="angular-ui-router" />
Bitte nehmen Sie in tsconfig.json einen Schalter vor, der das alte Verhalten bewirkt. Ich kann mein Projekt derzeit nicht umgestalten :(
Bitte nehmen Sie in tsconfig.json einen Schalter vor, der das alte Verhalten bewirkt
Was ist der "alte" Weg?
Wenn Sie Deklarationsdateien verwenden, die Sie von Typings oder tsd erhalten haben, sollte dies ohne Änderung funktionieren. Dies gilt nur für die @types
-Pakete auf npm. Wenn Sie sie im Moment nicht verwenden möchten, müssen Sie dies nicht tun.
Ich habe auch das gleiche Problem.
Gleiches Problem ... Nur @ types / angle installiert
importierter Winkel in Typoskriptdatei:
* als eckig aus 'eckig' importieren;
Der UI-Namespace ist jedoch auf ng nicht verfügbar.
Bekommen:
Das Modul 'eckig' hat kein exportiertes Element 'ui'.
Warum ist das geschlossen? Bedeutet das, dass es niemals behoben wird, oder gibt es ein anderes Problem dafür? (immer noch kaputt für mich)
Auch für mich immer noch kaputt
Und ist es immer noch
@asadsahi Das liegt daran, dass @types/angular
tatsächlich kein ui
Mitglied hat. Dieses Mitglied wird durch @types/angular-ui-router
.
Welches muss separat installiert werden:
npm i -D @types/angular-ui-router
Hat jemand schon eine Lösung gefunden?
@mhegazy könntest du das Ticket wieder öffnen?
Ich habe dieses Problem gerade beim Versuch, den Angular-UI-Router von 1.0.0-Beta.1 auf 1.0.0-rc.1 zu aktualisieren. Ich möchte auch TS aktualisieren und das Tippen zugunsten von @types loswerden ... All dies habe ich in der von yeoman-fountain generierten Angular1-Anwendung erhalten. Es macht mich wütend, weil ich meine Zeit verschwende :(
@mhegazy Könnten Sie bitte das Ticket wieder öffnen?
Dies ist immer noch ein Problem. Meine Problemumgehung vorerst:
"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"
Manchmal muss ich die Aufgabe nur manuell ausführen, aber meistens wird sie mit dem Postinstall-Skript ausgeführt.
Ich hatte den gleichen Fehler Module 'angular' has no exported member 'xxx'.
, nachdem ich meine Abhängigkeit auf @types/[email protected]
aktualisiert hatte.
In meinem Fall bezog es sich auf mehrere Winkeltypdefinitionen in meinen node_modules. Winkeltypen wurden in node_modules/@types/angular
und in node_modules/@types/ng-file-upload/node_modules/@types/angular
.
Dies lag an der Tatsache, dass das Garn bei verschiedenen Versionen eckig aufgelöst wurde. Ich hatte zwei Einträge für Winkel mit unterschiedlicher Auflösung in der Datei 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" "*"
Das Entfernen der Garnverriegelung und das erneute Ausführen der Garninstallation haben das Problem behoben, aber in meinem Fall wurden zu viele andere Abhängigkeiten geändert.
Die Verwendung von Garninstallation --flat hätte das Problem wahrscheinlich gelöst, aber ich wollte nicht ändern, wie alle Abhängigkeiten gelöst werden.
Also habe ich das Problem behoben, indem ich die Datei yarn.lock manuell in geändert habe
"@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" "*"
Hilfreichster Kommentar
Gleiches Problem ... Nur @ types / angle installiert
importierter Winkel in Typoskriptdatei:
* als eckig aus 'eckig' importieren;
Der UI-Namespace ist jedoch auf ng nicht verfügbar.
Bekommen:
Das Modul 'eckig' hat kein exportiertes Element 'ui'.