【发布时间】:2016-04-11 00:27:31
【问题描述】:
我有一个非常简单的文件:
/// <reference path="../typings/browser/ambient/jquery/jquery" />
import {Component} from "angular2/core";
@Component({})
export class AppComponent{
constructor(){
$.isEmptyObject({});
}
}
我安装了 jQuery 类型,所以 typescript 不会抱怨不识别 $。但现在事情是抱怨问题中的问题:
Error:(1679, 13) TS2403: Subsequent variable declarations must have the same type. Variable '$' must be of type 'JQueryStatic', but here has type 'cssSelectorHelper'.
出现此问题是因为 angular-protractor 也声明了 $,但声明为 cssSelectorHelper 而不是 JQueryStatic 对象。
事情是......我根本没有使用量角器!!!,为什么当我从 angular2/code 导入一些东西时它会被添加?在 Angular 的人解决这个问题之前,是否有一个体面的解决方法,如果他们有的话。
注意:注释掉量角器文件中的定义不是一个体面的解决方法,我正在寻找一些永久的东西,当其他人抓取项目并运行全新安装或更新 angular 库时不会消失.
【问题讨论】:
-
您的问题实际上与stackoverflow.com/questions/34546446/… 重复,希望Angular 团队能尽快解决此问题。
-
它们是相关的,而不是重复的。那个似乎更通用,并且要求将整个 Angular 2 作为一个 distinctlyTyped 库。我只是想为这个特定的 jquery 冲突解决它,因为他们首先在核心模块中调用量角器是愚蠢的。
-
所以你的问题是github.com/angular/angular/issues/4725,对吧?
-
正确,我相信这是他们为同一问题留下的一般问题:github.com/angular/angular/issues/5459 并且对于我在主仓库中看到的内容,他们可能已经修复了它,但他们还没有发布另一个构建到 npm。我正在寻找只申请一次的解决方法,直到他们在 npm 中发布新版本(如果他们确实修复了它)。
-
我在这里看不到他们的任何修复:github.com/angular/angular/commits/master。我相信它会像他们在这里承诺的那样在全球范围内得到修复:github.com/angular/angular/issues/5807#issuecomment-169041808。但我不确定,这只是我的解释。 :)
标签: typescript angular