パスワードを忘れた? アカウント作成
15690884 journal
日記

yuuka_maniaの日記: Typescript 引数(シグネチャ)違いの同じメソッド名 2

日記 by yuuka_mania

てっきりできないと思ってたが、できる模様。ただし、ちょっと特殊。しかし、これ、一般的には、オーバーロードっていうんだった?オーバロードって、継承した子で、親のメソッドを置き換えるような作法のことだと思ってたんだが。使いたい場面は結構あるので、使うが、しかしながら、これはイケてない気がするなぁ。トランスパイルで頑張れば、一般的な方法で実現できると思うのだが。

  twice(num: number): number;
  twice(str: string): string;
 
  twice(arg: any): any {
    if (typeof arg === 'number') {
      return arg * 2;
    }
    if (typeof arg === 'string') {
      return `${arg}${arg}`;
    }
  }

なお、プリミティブ型じゃない場合は、 その判定は、instanceof なんてのを使うっぽい。 ref. https://am1tanaka.hatenablog.com/entry/2013/12/11/211109

ref.
https://qiita.com/suin/items/7d6837a0342b36891099

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

最初のバージョンは常に打ち捨てられる。

読み込み中...