如何使用打字稿 Q.when()

How to use Typescript Q.when()

我有一个函数 returns angular.IPromise<any>

onActivate():IPromise<any>
{
     return Q.when(true);
}

但是当它运行它时它说

Q is not defined

虽然,当我查看 Q.d.ts 文件时,已声明模块并导出函数 when

如何在 typescript classes 中使用 Q 服务?

整个class是这样的:

/// <reference path="../../typings/q/q.d.ts" />
module app.common.modals
{

export class RenameModalCtrl extends app.common.controllers.ControllerBase
{
    public viewModel: RenameModalModel;
    private $modalInstance: ng.ui.bootstrap.IModalServiceInstance;

    static $inject = ['common', '$translate', '$modalInstance', 'viewModel'];

    constructor(common: any, $translate: angular.translate.ITranslateService, $modalInstance: ng.ui.bootstrap.IModalServiceInstance, viewModel: RenameModalModel)
    {
        super(common, $translate);
        this.viewModel = viewModel;
        this.$modalInstance = $modalInstance;
    }

    onActivate(): ng.IPromise<any>
    {
        return Q.when(true);
    }       
}

angular.module('app').controller('renameModalCtrl', RenameModalCtrl);
}

谢谢

您必须在 $inject 中添加 $q 作为您的注射剂之一。然后将其作为 Q 类型添加到您的构造函数中:ng.IQService

编辑:以为你的意思是 angular 问题。我想你只需要导入模块:

import * as Q from 'q';