在VS2013中,当tsc使用代码1退出时,构建停止。但在VS2012中却不是这样。

如何在忽略tsc.exe错误的情况下运行我的解决方案?

我得到许多属性'x'不存在的值类型'y'错误,我想忽略使用javascript函数时。


当前回答

我知道这个问题已经关闭了,但我发现它正在搜索相同的TypeScriptException,也许其他人正在搜索这个问题。 问题在于缺少TypeScript类型:

var coordinates = outerElement[0].getBBox();

属性“getBBox”在类型为“HTMLElement”的值上不存在。


The easiest way is to explicitly type variable as `any`
var outerHtmlElement: any = outerElement[0];
var coordinates = outerHtmlElement.getBBox();

编辑,2016年底

从TypeScript 1.6开始,首选的强制转换操作符是as,所以这些行可以压缩成:

let coordinates = (outerElement[0] as any).getBBox();


其他的解决方案

当然,如果你想把它做对,这有时是过度的,你可以:

创建自己的接口,简单地扩展HTMLElement 引入自己的类型,它扩展了HTMLElement

其他回答

我能够在typescript中使用类似的东西来解决这个问题:

let x = [ //data inside array ];
let y = new Map<any, any>();
for (var i=0; i<x.length; i++) {
    y.set(x[i], //value for this key here);
}

这似乎是我可以使用X中的值作为映射Y的键并进行编译的唯一方法。

有几种方法可以处理这个问题。如果这个对象与一些外部库相关,最好的解决方案是找到该库的实际定义文件并引用它,例如:

/// <reference path="/path/to/jquery.d.ts" >

当然,这在很多情况下并不适用。

如果你想“覆盖”类型系统,试试下面的方法:

declare var y;

这将允许你对var y进行任何调用。

我知道现在已经是2020年了,但我找不到一个能满足这个问题“忽略”部分的答案。事实证明,你可以用一个指令告诉TSLint这样做;

// @ts-ignore
this.x = this.x.filter(x => x.someProp !== false);

通常这会抛出一个错误,指出“someProp在类型上不存在”。有了注释,错误就消失了。

这将阻止编译时抛出任何错误,也应该停止IDE对您的抱怨。

在Angular2中有一个问题,我正在使用本地存储来保存一些东西,它不允许我这样做。

解决方案:

我有localStorage。city ->错误->属性“city”在“Storage”类型上不存在。

如何解决:

localStorage(城市的) (localStorage) .city (localStorage as any).city

我知道这个问题已经关闭了,但我发现它正在搜索相同的TypeScriptException,也许其他人正在搜索这个问题。 问题在于缺少TypeScript类型:

var coordinates = outerElement[0].getBBox();

属性“getBBox”在类型为“HTMLElement”的值上不存在。


The easiest way is to explicitly type variable as `any`
var outerHtmlElement: any = outerElement[0];
var coordinates = outerHtmlElement.getBBox();

编辑,2016年底

从TypeScript 1.6开始,首选的强制转换操作符是as,所以这些行可以压缩成:

let coordinates = (outerElement[0] as any).getBBox();


其他的解决方案

当然,如果你想把它做对,这有时是过度的,你可以:

创建自己的接口,简单地扩展HTMLElement 引入自己的类型,它扩展了HTMLElement