如何在我的打字稿示例中处理 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 (...)
从外观上看,您的模块看起来是一样的。
我有以下 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 (...)
从外观上看,您的模块看起来是一样的。