如何在我的打字稿示例中处理 TSLint 错误

How to handle TSLint Errors in my typescript example

我有以下 angularjs 用 Typescript 编写的工厂示例,但收到三个 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);
}

有没有办法创建接口,以便我只导出接口而不导出函数?我之前用其他服务实现过 类.

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

"call-signature" checks return type of functions

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

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

无论是否显式声明类型,甚至声明接口:

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

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