angular-ui-router/angular-ui-router.d.ts
文件,但出现了问题。使用@ types / angular-ui-router时,angular-ui-router不起作用。
"Module 'angular' has no exported member 'ui'"
现在每个文件都是红色的,并且不会编译
看起来将<reference types="angular" />
和import * as angular from 'angular';
将不起作用
angular-ui-bootstrap也会发生同样的事情
依赖@types/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/DefinitelyTyped/DefinitelyTyped/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是使用@types
时2.0+的新行为吗? 不能只包含一次“ true”全局变量,并且随处可见?
@types/angular-ui-router
和@types/angular-ui-bootstrap
仍然被破坏
@mhegazy是使用@types时2.0+的新行为吗? 不能只包含一次“ true”全局变量,并且随处可见?
您可以。 /// <reference types="angular" />
应该使ng
在您的编译中可用。
@ types / angular-ui-router和@ types / angular-ui-bootstrap仍然坏了
https://github.com/DefinitelyTyped/DefinitelyTyped/tree/types-2.0中的最新版本对我来说很合适。 您能指出什么对您不起作用吗?
您如何导入角度?
我正在使用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获得的声明文件,则该文件应该没有任何变化。 仅适用于npm上的@types
软件包。 如果您现在不想使用它们,则不必。
我也有同样的问题。
同样的问题...刚刚安装@ types / 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的键入方式...我在yeoman-fountain生成的angular1应用程序中获得了所有这些。 这让我很生气,因为我在浪费时间:(
@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"
有时,我只需要手动运行任务,但是大多数情况下,它是使用安装后脚本完成的。
将依赖项升级到@types/[email protected]
后,我遇到了相同的Module 'angular' has no exported member 'xxx'.
错误。
在我的情况下,它与我的node_modules中的几个角度类型定义有关。 角度类型在node_modules/@types/angular
和node_modules/@types/ng-file-upload/node_modules/@types/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安装可以解决此问题,但在我的情况下,它修改了太多其他依赖性。
使用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
在打字稿文件中导入的角度:
从“角度”导入*作为角度;
但是ui名称空间在ng上不可用。
获得:
模块“ angular”没有导出成员“ ui”。