【问题标题】:How can I add in Typescript typings for AngularJS $q and $http?如何为 AngularJS $q 和 $http 添加 Typescript 类型?
【发布时间】:2014-07-25 18:34:58
【问题描述】:

在我的代码中我有这个:

/// <reference path="../../../../scripts/typings/angularjs/angular.d.ts" />

angular.module('question')
    .controller('QuestionHomeController', [
        '$http',
        'enumService',
        '$q',
        '$rootScope',
        '$scope',
        '$state',
        questionHomeController]);

function questionHomeController(
    $http,
    enumService,
    $q,
    $rootScope,
    $scope,
    $state
    ) {

谁能告诉我如何为 $http 和 $q 添加 Typescript 输入?我已经引用了 AngularJS 类型定义文件,但类型仍然没有显示

【问题讨论】:

    标签: javascript angularjs typescript


    【解决方案1】:

    如果您的项目中包含了类型,您只需将其用作变量的类型,这样您就可以在智能感知上显示该类型的属性/函数。

    angular.module('question')
        .controller('QuestionHomeController', [
            '$http',
            'enumService',
            '$q',
            '$rootScope',
            '$scope',
            '$state',
            questionHomeController]);
    
    function questionHomeController(
        $http : ng.IHttpService,
        enumService,
        $q: ng.IQService,
        $rootScope : ng.IRootScopeService,
        $scope : ng.IScope,
        $state : ng.ui.IStateService
        ) {
    

    同样,您也可以为服务示例for enumService 指定接口类型。您也可以扩展现有类型。例如,您的范围有自己的功能,然后您将范围用作视图模型:-

    interface IquestionHomeViewModel extends ng.IScope {
            func1(arg:string):void;
            ...
    
    }
    

    你会用它作为:-

    $scope : IquestionHomeViewModel ,
    

    【讨论】:

    • 非常感谢。你能告诉我在哪里可以获得 ng.ui.IStateService。除了这个,一切都对我有用。
    • @Alan 哦,$state 是什么?我认为您使用的是 Angular ui 路由器状态服务吗?如果是这样,您需要为 $state 和任何其他 ui 路由器实体下载 angular-ui-router.d.ts 键入文件。
    • 是的。如果您使用除核心角度以外的任何其他组件,则需要包含其自己的类型。
    猜你喜欢
    • 2018-02-13
    • 1970-01-01
    • 2014-04-22
    • 2022-12-11
    • 2021-08-03
    • 2013-03-29
    • 2016-08-06
    • 2017-03-26
    • 1970-01-01
    相关资源
    最近更新 更多