簡體   English   中英

我的打字稿示例中如何處理TSLint錯誤

[英]How to handle TSLint Errors in my typescript example

我有以下用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);
}

有沒有一種創建接口的方法,以便我僅導出接口而不是函數? 之前,我已經通過實現為類的其他服務來做到這一點。

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

“呼叫簽名”檢查函數的返回類型

使用此規則(我個人更喜歡禁用它),您應該聲明類型:

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

無論您是否明確聲明類型,甚至聲明接口:

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

從外觀上看,您的模塊看起來相同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM