为什么在typescript中扩展类时没有类型提示

为什么在typescript中扩展类时没有类型提示,typescript,typescript-typings,Typescript,Typescript Typings,与blow案例类似: 子类属性信息应分配给基本类属性信息 我认为这里最好有一个类型提示 因为我写错了,所以没有类型提示吗 interface Info { name: string; age: number; } class BaiscClass { public info: Info = { name: 'a', age: 20 } } 在子类中再次声明成员info,这次是初始化 但是,随后的声明可以有不同的类型(有一些限制)。您的IDE似乎不再假定inf

与blow案例类似:

子类
属性信息应分配给
基本类
属性信息

我认为这里最好有一个类型提示

因为我写错了,所以没有类型提示吗

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

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

子类中
再次声明成员
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'
    };
}

请注意,自动完成通常取决于您使用的IDE。