忽略类型脚本错误“属性在类型的值上不存在”
2022-08-30 00:13:37
在VS2013中,当tsc退出代码1时,建筑物停止。VS2012并非如此。
如何在忽略 tsc.exe 错误的情况下运行解决方案?
我收到许多错误,我想在使用javascript函数时忽略这些错误。The property 'x' does not exist on value of type 'y'
在VS2013中,当tsc退出代码1时,建筑物停止。VS2012并非如此。
如何在忽略 tsc.exe 错误的情况下运行解决方案?
我收到许多错误,我想在使用javascript函数时忽略这些错误。The property 'x' does not exist on value of type 'y'
我知道这个问题已经关闭了,但我发现它搜索相同的TypeScriptException,也许其他人在搜索这个问题时遇到了这个问题。
问题在于缺少 TypeScript 键入:
var coordinates = outerElement[0].getBBox();
抛出The property 'getBBox' does not exist on value of type 'HTMLElement'.
var outerHtmlElement: any = outerElement[0];
var coordinates = outerHtmlElement.getBBox();
从 TypeScript 1.6 开始,首选的转换运算符是 ,因此这些行可以压缩为:as
let coordinates = (outerElement[0] as any).getBBox();
当然,如果你想做对,这有时是一个过度的,你可以:
HTMLElement
HTMLElement
快速而肮脏的解决方案是显式转换为any
(y as any).x
“优点”是,强制转换是显式的,即使设置了标志,这也将进行编译。noImplicitAny
正确的解决方案是更新类型定义文件。
请注意,将变量转换为 时,请选择不对该变量进行类型检查。any
由于我处于免责声明模式,因此通过结合新界面进行双重转换在以下情况下很有用:any
然而,你仍然需要某种形式的打字。
假设您要使用类型为 的新属性修补类型实例的定义:y
OrginalDef
x
number
const y: OriginalDef = ...
interface DefWithNewProperties extends OriginalDef {
x: number
}
const patched = y as any as DefWithNewProperties
patched.x = .... //will compile