为了说明我的问题,我将代码简化如下:
class Animal {} class Cat extends Animal { talk() { console.log('meow') } } class Tiger extends Animal { talk() { console.log('roar') } }
所以这个代码是这样工作的:
const cat = new Cat() cat.talk() // outputs meow const tiger = new Tiger() tiger.talk() // outputs roar
但如果我这样做,我显然会遇到一个问题,因为方法不存在:
const animal = new Animal() animal.talk() // error
有什么办法吗?谢谢
我希望所有的动物都有一个谈话方法,但我不想在动物类中定义一个
在Typescript 1.6或更高版本上,可以定义 Animal 类作为抽象类,如下所示:
Animal
abstract class Animal { abstract talk(): void; }
如果你不想定义 动物
动物
class Animal { abstract talk(): void; }