【问题标题】:Property 'platform' is declared but never used属性“平台”已声明但从未使用过
【发布时间】:2017-12-04 17:07:21
【问题描述】:

为什么我收到 tslint 的警告?

Package name: io.ionic.starter
[18:37:16]  tslint: s:/IonicProject/VerificheNawi/src/pages/home/home.ts, line: 14
        Property 'platform' is declared but never used.

  L14:    constructor(public navCtrl: NavController, private platform: Platform, public splash: SplashScreen) {
  L15:      platform.ready().then(()  => {

如您所见,L15 使用平台... 我想知道关于注射是否有一些我还不了解的东西。

【问题讨论】:

  • 我想我知道为什么,但以防万一...请您尝试将这一行更改为以下行:this.platform.ready().then(() => {。如果可行,请告诉我,我会添加一个答案来解释它发生的原因:)
  • 是的,我首先这样做了。但它是一样的。
  • 你能在哪里解决这个问题?
  • 是的。我必须简单地输入platform: Platform 而不是private platform: Platform(或公开)。这只是一个参考,警告消失了。但是,在此之后我使用了实际平台... :-)
  • 我想我做到了! [我没有 15 名声望,所以我不能确定我已经做到了:我又试了一次]

标签: angular typescript ionic-framework ionic2 ionic3


【解决方案1】:

问题是第 14 行。所以试试这个:

constructor(platform: Platform, public navCtrl: NavController, public splash: SplashScreen) {

通过在构造函数中省略平台的 private 关键字,我们告诉 Typescript 不要在此组件中为其创建属性

为什么?由于您使用的是这样的平台:platform.ready... 您使用的不是来自组件的属性,而是来自构造函数的参数

所以在我看来,你可以通过两种方式解决这个问题:

  1. 删除平台旁边的private关键字,在constructor中,为了不在组件中创建属性,只使用platform参数。
  2. platform.ready().then(...) 更改为this.platform.ready().then(..) 以使用组件中的属性(通过使用this 关键字)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-02
    • 2011-09-21
    • 1970-01-01
    • 2018-03-29
    • 2015-08-12
    • 2021-12-14
    • 1970-01-01
    相关资源
    最近更新 更多