我需要強制類來實現一些方法,例如onCreate()
,在其他語言,如php
我們可以看到:在打字稿如何強制繼承類實現的方法
<?php
// Declare the interface 'Movement'
interface MovementEvents
{
public function onWalk($distance);
}
// Declare the abstract class 'Animal'
abstract class Animal implements MovementEvents{
protected $energy = 100;
public function useEnergy($amount){
$energy -= $amount;
}
}
class Cat extends Animal{
// If I didn't implement `onWalk()` I will get an error
public function onWalk($distance){
$amount = $distance/100;
$this->useEnergy($amount)
}
}
?>
注意,在我的例子,如果我沒有實現onWalk()
的代碼將無法正常工作,你會得到一個錯誤,但是當我做同樣的TypeScript
如下:
// Declare the interface 'Movement'
interface MovementEvents
{
onWalk: (distance)=>number;
}
// Declare the abstract class 'Animal'
abstract class Animal implements MovementEvents{
protected energy:number = 100;
public useEnergy(amount:number):number{
return this.energy -= amount;
}
}
class Cat extends Animal{
// If I didnt implment `onWalk()` I will get an error
public onWalk(distance:number):number{
var amount:number = distance/100;
return this.useEnergy(amount);
}
}
沒有錯誤會顯示我是否做了或沒落實該如果我沒有在Animal
類中實現onWalk()
,那麼它會給出錯誤,我需要與php
中的TypeScript
相同?
非常感謝很多..我花了幾天尋找解決方案。 –