我是打字新手.在我的Durandal应用程序中,我迁移到VS-2012到VS-2015意味着typescript 0.9到typescript 1.8.4.迁移之后,我遇到了很多构建错误.除了一个,我解决了所有的问题.我对事件类型的构建错误有所了解.

ERROR: " Build: Property 'result' does not exist on type 'EventTarget' "

代码如下所示:

var reader:any,
target:EventTarget;

reader= new FileReader();
reader.onload = function (imgsrc){
    var fileUrl = imgsrc.target.result;
}

"Imgsrc"正在进行类型事件.

它在typescript 0.9中运行良好,但在1.8.4中,它会抛出错误,因为类型"EventTarget"上不存在"result".

Note: "target:EventTarget" is getting from lib.d.ts

推荐答案

100是一种药(almost for anything, but... where is the TypeScript benefit then)...有一个类似的问题报告,并建议解决

请求更改库的事件接口中的currentTarget.d、 ts

让我举个例子:

我遇到了这个TS2339:类型上不存在属性"result"

我的工作是 suppress 可怕的红色扭曲线条;-)是吗

interface FileReaderEventTarget extends EventTarget {
    result:string
}

interface FileReaderEvent extends Event {
    target: FileReaderEventTarget;
    getMessage():string;
}

然后在我的应用程序中:

reader.onload = function(fre:FileReaderEvent) {
    var data = JSON.parse(fre.target.result);
    ...
}

直到lib发生变化.d、 ts,我们仍然使用已知的接口

2019年12月编辑:

通过此修复,您可能会

error TS2322: Type '(this: FileReader, e: FileReaderEvent) => void' is not assignable to type '(this: FileReader, ev: ProgressEvent) => any'.

如果是的话,就换一个

 interface FileReaderEvent extends Event {

具有

 interface FileReaderEvent extends ProgressEvent {

Typescript相关问答推荐

为什么当我试图从数据库预填充时,属性x不存在于类型{错误:字符串; }.ts(2339)上?

类型脚本中的Gnomeshell 扩展.如何导入.ts文件

TypScript中的算法运算式

Angular 17 -如何使用新的@if语法在对象中使用Deliverc值

根据另一个属性的值来推断属性的类型

TypeScrip:基于参数的条件返回类型

未在DIST中正确编译TypeScrip src模块导入

我可以为情态车使用棱角形的路由守卫吗?

从子类构造函数推断父类泛型类型

记录键的泛型类型

如何将对象数组中的键映射到另一种对象类型的键?

自定义 Select 组件的类型问题:使用带逗号的泛型类型<;T与不带逗号的<;T&>;时出错

为什么发送空字段?

为什么TS2339;TS2339;TS2339:类型A上不存在属性a?

在打字应用程序中使用Zod和Reaction-Hook-Forms时显示中断打字时出错

字符串文字联合的分布式条件类型

Typescript不允许在数组中使用联合类型

在tabel管理区域react js上设置特定顺序

TypeScript:方法获胜';t接受较窄类型作为参数

为什么 Typescript 无法正确推断数组元素的类型?