Typescript 如何解决编译错误

Typescript 如何解决编译错误,typescript,q,Typescript,Q,将js文件转换为ts文件后,出现以下编译错误: Type '() => Promise<{}>' is not assignable to type 'Promise<{}>'. Property 'fin' is missing in type '() => Promise<{}>'. 这个错误消息是什么意思?我应该做些什么来解决这个问题 这段代码来自DurandalJS的一部分 代码是有效的。如果我把它注释掉,它就会破坏应用程序。我不知道

将js文件转换为ts文件后,出现以下编译错误:

Type '() => Promise<{}>' is not assignable to type 'Promise<{}>'.
Property 'fin' is missing in type '() => Promise<{}>'.  
这个错误消息是什么意思?我应该做些什么来解决这个问题

这段代码来自DurandalJS的一部分


代码是有效的。如果我把它注释掉,它就会破坏应用程序。我不知道它想做什么。

根据你从
DurandalJS
链接到的页面,它期望
jQuery
承诺,如果你真的愿意,你可以用Q交换

jQuery
deferred
需要一个函数
promise
(请参阅),而
Q
有一个名为
promise
的属性,因此为了让DurandalJS正常工作,它要求它是一个函数,因为这正是它所期望的

您可以使用下面的cast来修复错误

deferred.promise = <any>function() { return promise; }; 
deferred.promise=function(){return promise;};

downvote的原因?为什么要给延期的
promise
属性赋值?它已经有了一个值,改变它不是一个好主意。你想在有错误的线路上实现什么?就像@DCoder说的,你写的东西没有多大意义。谢谢你的评论。我真的不知道它想做什么,但它确实有效。注释时,代码会中断。我添加了源代码的链接。啊,我现在知道了+1.详细答案。
deferred.promise = <any>function() { return promise; };