Definitelytyped: @ tipos / angular-ui-enrutador | angular-ui-bootstrap | angular-translate "El módulo 'angular' no tiene un miembro exportado 'ui'"

Creado en 17 jul. 2016  ·  19Comentarios  ·  Fuente: DefinitelyTyped/DefinitelyTyped

  • [x] Intenté usar el archivo angular-ui-router/angular-ui-router.d.ts más reciente en este repositorio y tuve problemas.

angular-ui-router no funciona cuando se usa @ types / angular-ui-router.

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

cada archivo ahora es rojo y no se compilará

Parece que tener un <reference types="angular" /> junto con un import * as angular from 'angular'; no funcionará

Lo mismo sucede con angular-ui-bootstrap

Los módulos que dependen de @types/angular están rotos. No estoy usando la variable global angular y cuando lo hago import * as angular from 'angular' , intento acceder a un espacio de nombres de módulo, como angular.ui.bootstrap , angular.translate , angular.ui , ellos todos dan el error Module 'angular' has no exported member 'ui'

el siguiente código falla:

'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

Comentario más útil

Mismo problema ... Acabo de instalar @ tipos / angular

angular importado en archivo mecanografiado:
importar * como angular de 'angular';

Sin embargo, el espacio de nombres ui no está disponible en ng.

Consiguiendo:

El módulo 'angular' no tiene un miembro exportado 'ui'.

Todos 19 comentarios

Esto debería solucionarse mediante https://github.com/DefinitelyTyped/DefinitelyTyped/pull/10170

puedes usarlo como módulo:

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

o como global pero usa /// <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 ¿ es este el nuevo comportamiento para 2.0+ cuando se usa @types ? ¿No puede tener globales "verdaderos" que incluya una vez y esté disponible en todas partes?

@types/angular-ui-router y @types/angular-ui-bootstrap todavía están rotos por cierto

clipboard01

@mhegazy ¿ es este el nuevo comportamiento de 2.0+ cuando se usan @types? ¿No puede tener globales "verdaderos" que incluya una vez y esté disponible en todas partes?

usted puede. /// <reference types="angular" /> debería hacer que ng esté disponible en su compilación.

@ types / angular-ui-router y @ types / angular-ui-bootstrap todavía están rotos por cierto

lo último en https://github.com/DefinitelyTyped/DefinitelyTyped/tree/types-2.0 me parece correcto. ¿Puede señalar lo que no le está funcionando?
¿cómo estás importando angular?

Estoy usando import * as angular from 'angular' . cuando intento usar angular.ui.IStateProvider (desde angular-ui-router ), no existe en angular. incluso si estoy agregando el enrutador angular-ui en otro archivo (mi módulo base), ¿ahora necesito incluirlo en cada archivo?

también necesitas importarlo. import "angular-ui-router"; o agregue una referencia de tipos /// <reference types="angular-ui-router" />

por favor haga un cambio en tsconfig.json que haga que se comporte de la manera anterior, no puedo refactorizar mi proyecto en este mismo momento :(

por favor haga un cambio en tsconfig.json que haga que se comporte de la manera anterior

¿Cuál es la forma "antigua"?

si está utilizando archivos de declaración que obtuvo de typings o tsd, debería funcionar sin cambios. esto es solo para los paquetes @types en npm. si no desea utilizarlos en este momento, no es necesario.

También tengo el mismo problema.

Mismo problema ... Acabo de instalar @ tipos / angular

angular importado en archivo mecanografiado:
importar * como angular de 'angular';

Sin embargo, el espacio de nombres ui no está disponible en ng.

Consiguiendo:

El módulo 'angular' no tiene un miembro exportado 'ui'.

¿Por qué esta cerrado? ¿Eso significa que nunca se solucionará o hay otro problema? (todavía roto para mí)

Todavía roto para mí también

Y todavía lo es

@asadsahi Eso es porque @types/angular realidad no tiene miembro ui . Este miembro está definido por @types/angular-ui-router .

Que deben instalarse separados:

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

¿Alguien ha encontrado una solución todavía?
@mhegazy ¿ podrías reabrir la entrada?

Acabo de tener este problema al intentar actualizar angular-ui-router de 1.0.0-beta.1 a 1.0.0-rc.1. También quiero actualizar TS y deshacerme de escribir a favor de @types ... Todo esto lo obtuve en la aplicación angular1 generada por Yeoman-Fountain. Me enoja porque estoy perdiendo el tiempo :(
@mhegazy, ¿ podrías volver a abrir el boleto?

Esto sigue siendo un problema. Mi solución por el momento:

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

A veces solo tengo que ejecutar la tarea manualmente, pero la mayoría de las veces se hace con un script postinstall.

Tuve el mismo error Module 'angular' has no exported member 'xxx'. después de actualizar mi dependencia a @types/[email protected] .
En mi caso, estaba relacionado con varias definiciones de tipo angular en mis node_modules. Los tipos angulares se definieron en node_modules/@types/angular y en node_modules/@types/ng-file-upload/node_modules/@types/angular .

Esto se debió al hecho de que el hilo se resolvió angular con diferentes versiones. Tenía dos entradas para angular con diferente resolución en el archivo 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" "*"

Eliminar el yarn.lock y volver a ejecutar la instalación del hilo resolvió el problema, pero modificó demasiadas otras dependencias en mi caso.

Usar yarn install --flat probablemente habría resuelto el problema, pero no quería cambiar cómo se resuelven todas las dependencias.

Así que solucioné el problema cambiando manualmente el archivo yarn.lock a

"@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" "*"
¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

csharpner picture csharpner  ·  3Comentarios

variousauthors picture variousauthors  ·  3Comentarios

victor-guoyu picture victor-guoyu  ·  3Comentarios

JWT
svipas picture svipas  ·  3Comentarios

jamespero picture jamespero  ·  3Comentarios