具体地说,我想在 FireFox 错误对象上使用“ 文件名称” 和其他额外属性。
But something like this gives me red underlining, which I could simply ignore, but it bothers me. I tried
function normalizeError(e:Error|ErrorEvent|PromiseRejectionEvent|any) {
if(e instanceof Error){
return {
line: e?.fileName //underlined
}
}else return null
}
下划线是因为文件Name 是一个仅在浏览器子集中找到的属性, 它不是斯坦诺化的, 但它是我在参数类型中指定的错误对象上的属性 。
正在修改与声明界面的界面 合并工程排序...
interface Error {
fileName?: string
}
function normalizeError(e:Error|ErrorEvent|PromiseRejectionEvent|any) {
if(e instanceof Error){
return {
line: e?.fileName // Not-underlined
}
}else return null
}
但是,当我输出这个功能时,它又强调了它?
interface Error {
fileName?: string
}
// Exported now:
export function normalizeError(e:Error|ErrorEvent|PromiseRejectionEvent|any) {
if(e instanceof Error){
return {
line: e?.fileName // underlined again
}
}else return null
}
An image to show the underline:
那么当我输出函数时,为什么不再申报合并工作呢? 我能做些什么去掉下划线呢?
增编1:
I noticed that if I reassign e to itself, there is no longer an error... What? See:
显然指派e 将它从错误类型更改为“ 任何” 类型, 摆脱该财产并不存在错误。 我本可以假设,在基本上将它自己分配时,该类型不会改变,但我猜想我错了。
增编2:
我想我只是要使用 // @ts-ignore
,直到有人澄清用什么适当方式来澄清标注的正确方式,即属性 might actually 是可用的。