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

时间:2015-08-13 20:08:27

标签: angularjs typescript firebase angularfire

我在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);
}

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

1 个答案:

答案 0 :(得分:0)

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

  

“call-signature”检查函数的返回类型

使用此规则(我个人更喜欢禁用它),您应该声明类型:

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

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

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

外观你的模块看起来一样。