Javascript 在TypeScript的子类中定义的父类中声明属性

Javascript 在TypeScript的子类中定义的父类中声明属性,javascript,typescript,Javascript,Typescript,一个简单的例子来说明我的问题: class Animal { foo() { console.log(this.bar); } } class Dog extends Animal { bar: string; constructor() { super(); this.bar = "bar"; } test() { this.foo(); } } new Dog().test(); 类型脚本错误: 类型“Animal”上不存在属

一个简单的例子来说明我的问题:

class Animal {
  foo() {
    console.log(this.bar);
  }
}

class Dog extends Animal {
  bar: string;
  constructor() {
    super();
    this.bar = "bar";
  }
  test() {
    this.foo();
  }
}

new Dog().test();
类型脚本错误:

类型“Animal”上不存在属性“bar”。ts

我理解需要在
Dog
类中声明
bar
属性,但TypeScript也希望我在
Animal
类中声明它。这是预期的吗?继承时是否需要从Child->Parent类复制属性声明

继承时是否需要从Child->Parent类复制属性声明

否。将
移动到
动物

或使用打字机:

 if(this instanceof Dog)
   console.log(this.bar);
继承时是否需要从Child->Parent类复制属性声明

否。将
移动到
动物

或使用打字机:

 if(this instanceof Dog)
   console.log(this.bar);