簡體   English   中英

為什么在 typescript 中擴展 Class 時沒有類型提示

[英]why there is no type hint when extends Class in typescript

像打擊案例: 在此處輸入圖像描述

SubClass屬性info應分配給BasicClass屬性info

我認為最好在這里有一個類型提示。

沒有類型提示是因為我寫錯了嗎?

interface Info {
  name: string;
  age: number;
}

class BaiscClass {
  public info: Info = {
    name: 'a',
    age: 20
  }
}

SubClass ,您再次聲明成員info ,這次是初始化。

但是,后續聲明可能有不同的類型(有一些限制)。 看來您的 IDE 並沒有假設info成員再次屬於Info類型。

如果您使用相同的類型再次重新聲明該成員,它應該可以工作:

class SubClass extends BaseClass {
public info: Info = { 
        age: 10, /* Auto-completion should work here. Note that the type is specified explicitly. */
        name: 'a'
    };
}

但是因為這里重新聲明了成員,所以類型可能會改變:

interface Info2 extends Info
{
    bla: string;
}

class SubClass extends BaseClass {
public info: Info2 = { 
    age: 10, /* Auto-completion should work here. Note that the type of "info" is now "Info2". */
    name: 'a',
    bla: 'bla',
};
}

您可能希望在構造函數中初始化已聲明的成員:

class SubClass extends BaseClass {
constructor() {
    this.info = { 
        age: 10, /* Auto-completion should work here */
        name: 'a'
    };
}

暫無
暫無

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

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