我的Ionic 3项目似乎得到了很多误报:
这是正常的吗?
12:27:29] tslint:src / pages / tabs / tabs.ts,line:28 物业' navParams'宣布但从未使用过。
L27: constructor(
L28: private navParams: NavParams,
L29: @Inject(forwardRef(() => AuthService ))
[12:27:29] tslint:src / pages / tabs / tabs.ts,line:30 物业' authService'宣布但从未使用过。
L29: @Inject(forwardRef(() => AuthService ))
L30: private authService:AuthService
L31: ) {
然而,这是代码:
export class TabsPage {
...
mySelectedIndex: number;
loggedIn:boolean;
constructor(
private navParams: NavParams,
@Inject(forwardRef(() => AuthService ))
private authService:AuthService
) {
console.log('TabsPage constructor: navParams.data: ', navParams.data);
this.loggedIn = authService.authenticated(RootPage.LAUNCHPAD.toString());
this.mySelectedIndex = navParams.data.tabIndex || 0;
console.log('Tabs pages: selectedIndex: ' + this.mySelectedIndex);
console.log('Tabs pages: loggedIn: ' + this.loggedIn);
}
isLoggedIn():boolean {
return this.loggedIn;
}
}
答案 0 :(得分:8)
如果在typescript文件之外使用声明的变量,则需要删除修饰符。尝试删除私人。这将解决这个问题。
答案 1 :(得分:5)
由于您使用私有修饰符声明参数,因此它将成为一个类字段,实际上该类字段从未使用过。如果只使用构造函数中的参数,请删除修饰符。
答案 2 :(得分:2)
就目前我所知,这是tslint
中的一个错误。我这样说是因为我最近有类似的例子,其中注入构造函数的私有成员用于其他方法。因此,该字段肯定被使用 - 只是不在构造函数中。
至少在我的情况下,我能够通过将注入的参数标记为tslint
来解决public
警告。这样做可以防止linter确定它们是否曾被引用过。这是一个黑客,但至少它摆脱了警告消息,而不必在每个这样的构造函数之前用//tslint:disable-next-line
注释乱丢你的代码。