TypeScript では実装したインターフェースのメソッドより少ないパラメーターでメソッドを定義できる
TypeScript 実践プログラミングより
TypeScript実践プログラミング (Programmer's SELECTION)
- 作者: スティーブ・フェントン,鈴木幸敏,株式会社クイープ
- 出版社/メーカー: 翔泳社
- 発売日: 2015/01/23
- メディア: 大型本
- この商品を含むブログ (1件) を見る
クラスのメソッドでは、インターフェースで指定されているものよりも少ない数のパラメータを定義できる。それにより、そのメソッドを実行する上で必要のない引数をクラスが無視できるようになる。
とのことなので試してみた。
interface Phone { call(target: string); } class RakurakuPhone implements Phone { constructor(private target: string) { } call() { console.log('Calling...'); } }
使うときはこんな感じで、変数の型に合わせたパラメーターでのみメソッドを呼び出せる。
var rakuraku = new RakurakuPhone('xxx-xxxx-xxxx'); rakuraku.call(); // Error // rakuraku.call('xxx-xxxx-xxxx'); var phone = <Phone>rakuraku; phone.call('xxx-xxxx-xxxx'); // Error // phone.call();
不要なパラメーターを引き継ぐ必要がないのは便利。インターフェースの継承には適用されないのが勿体ない。