打字稿定义文件为$ q

时间:2014-01-09 00:04:30

标签: javascript angularjs typescript breeze q

我希望我能得到一些帮助。我一直试图在一个角度应用程序中使用$ q,我试图用typescript描述。但我在挣扎。我试图创建一个类型定义文件,如下所示:

/// <reference path="../q/Q.d.ts" />
/// <reference path="../angularjs/angular.d.ts" />

declare module breeze.core {
    export function extendQ(rootScope: ng.IScope, q: Q.Promise<any>): any;
    export function to$q(qPromise: Q.Promise<any>, success: any, fail: any): any;
}

但javascript代码更像是c#扩展方法,我不知道如何用typescript实现类似的效果。请注意,我只有javascript的基本经验,而且微风对我来说完全是新的。

2 个答案:

答案 0 :(得分:3)

$ q在angularjs类型定义here

中定义

您不需要参考q.d.ts

答案 1 :(得分:2)

很高兴知道,@ basarat。

但更重要的是......我们已弃用to$q,转而使用$q在您的Breeze应用中承诺。那就对了。微风不再依赖于 Q.js (虽然这仍然是默认值)。

请改用Breeze.Angular.Q。它以NuGet package或直接from GitHub提供。请参阅Breeze Labs documentation for it

您只需将Breeze配置为使用应用模块的$q实例,然后针对$q承诺编写您的微风代码。例如

var promise = entityManager
   .executeQuery(query)
   .then(successCallback)
   .catch(failCallback) 
   .finally(finalCallback);