Definitelytyped: @ types / angular-ui-router | angular-ui-bootstrap | angular-translate“模块'angular'没有导出的成员'ui'”

创建于 2016-07-17  ·  19评论  ·  资料来源: DefinitelyTyped/DefinitelyTyped

  • [x]我尝试在此仓库中使用最新的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.bootstrapangular.translateangular.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);
@types Bug

最有用的评论

同样的问题...刚刚安装@ types / angular

在打字稿文件中导入的角度:
从“角度”导入*作为角度;

但是ui名称空间在ng上不可用。

获得:

模块“ angular”没有导出成员“ ui”。

所有19条评论

这应该通过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仍然被破坏

clipboard01

@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/angularnode_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" "*"
此页面是否有帮助?
0 / 5 - 0 等级