Lan*_*ley 8 typescript angular
我有一个非常简单的文件:
/// <reference path="../typings/browser/ambient/jquery/jquery" />
import {Component} from "angular2/core";
@Component({})
export class AppComponent{
constructor(){
$.isEmptyObject({});
}
}
Run Code Online (Sandbox Code Playgroud)
我安装了jQuery打字,所以打字稿不会抱怨不能识别$.但现在问题在于抱怨问题中的问题:
Error:(1679, 13) TS2403: Subsequent variable declarations must have the same type. Variable '$' must be of type 'JQueryStatic', but here has type 'cssSelectorHelper'.
Run Code Online (Sandbox Code Playgroud)
出现这个问题是因为角度量角器也声明了$,cssSelectorHelper而不是JQueryStatic对象.
事情是......我根本不使用量角器!!!为什么在从angular2/code导入东西时它会被添加?有没有一个像样的解决方案,直到Angular家伙解决这个问题,如果他们做的话.
注意:在量角器文件中注释掉定义并不是一个不错的解决方法,我正在寻找永久性的东西,当别人抓住项目并运行干净安装或更新角度库时,这些东西不会消失.
在d.ts文件替换中
declare module "jquery" {
export = $;
}
declare var jQuery: JQueryStatic;
declare var $: JQueryStatic;
Run Code Online (Sandbox Code Playgroud)
同
declare module "jquery" {
export = jQuery;
}
declare var jQuery: JQueryStatic;
Run Code Online (Sandbox Code Playgroud)
作为解决方法,注释掉 JQueryStatic 并替换为 angular-protractor.d.ts 底部的 cssSelectorHelper
declare var browser: protractor.IBrowser;
declare var by: protractor.IProtractorLocatorStrategy;
declare var By: protractor.IProtractorLocatorStrategy;
declare var element: protractor.Element;
// declare var $: JQueryStatic;
declare var $: cssSelectorHelper;
declare var $$: cssArraySelectorHelper;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13186 次 |
| 最近记录: |