【问题标题】:How to handle TSLint Errors in my typescript example如何在我的打字稿示例中处理 TSLint 错误
【发布时间】:2015-11-06 23:13:37
【问题描述】:

我有以下用 Typescript 编写的 angularjs 工厂示例,但收到三个 TSLint 错误:

第 3 行:预期调用签名:“FirebaseFactory”具有 typedef
第 8 行:预期调用签名:'AuthFactory' 有一个 typedef
第 9 行:预期呼叫签名具有 typedef

虽然我知道它仍然是有效的 Typescript,但我更愿意确保保持 TS 包含的所有类型检查优势。

module app.services {

    export function FirebaseFactory () {
        return new Firebase('https://sample.firebaseio.com');
    }

    angular.module('app.services').factory('firebaseFactory', FirebaseFactory);

    export function AuthFactory (DB: Firebase, $firebaseAuth: AngularFireAuthService) {
        return function () {
            return $firebaseAuth(DB);
        };
    }

    AuthFactory.$inject = ['firebaseFactory', '$firebaseAuth'];

    angular.module('app.services').factory('authFactory', AuthFactory);
}

有没有办法创建接口,以便我只导出接口而不是函数?我之前已经使用其他作为类实现的服务来完成此操作。

【问题讨论】:

    标签: angularjs typescript firebase angularfire


    【解决方案1】:

    https://github.com/palantir/tslint#supported-rules 说:

    “调用签名”检查函数的返回类型

    使用这条规则(我个人更喜欢禁用它)你应该声明类型:

    export function AuthFactory (...): () => AngularFireAuth
    

    不管你是否显式声明类型,甚至声明接口:

    export var AuthFactory: { (): AngularFireAuth; } = function (...)
    

    从外观上看,您的模块看起来是一样的。

    【讨论】:

      猜你喜欢
      • 2021-05-20
      • 2022-01-24
      • 2021-08-21
      • 1970-01-01
      • 2017-08-08
      • 2022-01-21
      • 2019-06-21
      • 2021-12-29
      • 2020-04-01
      相关资源
      最近更新 更多