angular-ui-router/angular-ui-router.d.ts
и у меня возникли проблемы.angular-ui-router не работает при использовании @ types / angular-ui-router.
"Module 'angular' has no exported member 'ui'"
теперь каждый файл красный и не компилируется
Похоже, наличие <reference types="angular" />
рядом с import * as angular from 'angular';
не сработает
То же самое происходит с angular-ui-bootstrap
Модули, зависящие от @types/angular
, полностью не работают. Я не использую глобальную переменную angular, и когда я делаю import * as angular from 'angular'
затем пытаюсь получить доступ к пространству имен модуля, например angular.ui.bootstrap
, angular.translate
, angular.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);
Это должно быть исправлено https://github.com/DefinitiTyped/DefinitiTyped/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 - это новое поведение для 2.0+ при использовании @types
? не может быть "настоящих" глобалов, которые вы включаете один раз и которые доступны везде?
@types/angular-ui-router
и @types/angular-ui-bootstrap
по-прежнему не работают
@mhegazy - это новое поведение для 2.0+ при использовании @types? не может быть "настоящих" глобалов, которые вы включаете один раз и которые доступны везде?
вы можете. /// <reference types="angular" />
должен сделать ng
доступным в вашей компиляции.
@ types / angular-ui-router и @ types / angular-ui-bootstrap все еще не работают, кстати
последнее в https://github.com/DefinitiTyped/DefinitiTyped/tree/types-2.0 мне кажется правильным. Вы можете указать, что вам не подходит?
как вы импортируете angular?
Я использую import * as angular from 'angular'
. когда я пытаюсь использовать angular.ui.IStateProvider
(из angular-ui-router
), он не существует в angular. даже если я добавляю angular-ui-router в другой файл (мой базовый модуль), мне теперь нужно включать его в каждый файл?
вам тоже нужно импортировать это. import "angular-ui-router";
или добавьте ссылку на него /// <reference types="angular-ui-router" />
пожалуйста, сделайте переключатель в tsconfig.json, который заставит его вести себя по-старому, я не могу реорганизовать свой проект прямо сейчас :(
пожалуйста, сделайте переключатель в tsconfig.json, который заставит его вести себя по-старому
что такое "старый" способ?
если вы используете файлы объявлений, полученные в результате набора текста или tsd, он должен работать без изменений. это только для пакетов @types
в npm. если вы не хотите использовать их в данный момент, вам не нужно.
У меня такая же проблема.
Та же проблема ... Просто установил @ types / angular
импортированный angular в машинописный файл:
import * as 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 ... Все это я получил в приложении angular1, созданном yeoman-fountain. Меня это злит, потому что я зря трачу время :(
@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"
Иногда мне просто нужно запустить задачу вручную, но большая часть времени это делается с постустановочных сценарием.
У меня была такая же ошибка Module 'angular' has no exported member 'xxx'.
после того, как я обновил свою зависимость до @types/[email protected]
.
В моем случае это было связано с несколькими определениями углового типа в моих node_modules. Угловые типы были определены в node_modules/@types/angular
и в node_modules/@types/ng-file-upload/node_modules/@types/angular
.
Это было связано с тем, что пряжа решалась угловатая у разных вариантов. У меня было две записи для angular с разным разрешением в файле 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" "*"
Удаление yarn.lock и повторная установка пряжи решили проблему, но в моем случае изменилось слишком много других зависимостей.
Использование yarn install --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" "*"
Самый полезный комментарий
Та же проблема ... Просто установил @ types / angular
импортированный angular в машинописный файл:
import * as angular из 'angular';
Однако пространство имен ui недоступно на ng.
Получение:
Модуль angular не имеет экспортированного элемента ui.