Interface
取り決めを作っておいて(What)、必要なところで実装(How)を書く。
取り決めをどこかで書いておいて、
実装(How)場所は、以下の2つがある?
クラス宣言のところで、このクラスで使うので、実装書きます。
クラスとは関係なしに、そのインターフェース名でconstructして変数に渡す
必要性:
抽象クラスだと継承するしかないけど、
外とのやり取りについて、複数のものをまとめて、必要な部分だけで再構成する。(まちがってるかな..)
言語ごとに特徴はあるんだろうが、、よくわかってない。
interfaceを書いて、それを満たす関数を書く。
index.d.ts と interfaceや typeの定義ファイルをみることができる。
to provide typescript type information about an module
API : APplication Interface ハードウエア
SPI Serial Peripheral Interface 議論:
ここでいうmix-inクラスというのは、以下の記事で述べられているような「インスタンス変数を含まず、メソッドのみを持つ多重継承用のクラス」のことです