投稿数 585
公開から 2940

TypeScriptのジェネリックとは?


いきさつ

これがいまいちわからない。。

ジェネリックの意味

汎用とか、後発的、という意味です。

基本

<T>は型の変数みたいなもんです。 なんらかの型を使うことだけ決めておいて、 インスタンス化するときにその型を決めることができます。

使い方の例

一番わかりやすい例としてはListを使うときの例でしょう!

// <T>がジェネリクスです
class List<T> {
    private data: T[];

    constructor(...elements: T[]) {
        this.data = elements;
    }

    add(t: T) {
        this.data.push(t);
    }
}

let numbers = new List<number>(1, 2, 99);
numbers.add(11);

感想

でもこれを使うときって相当抽象的なClassを書くときとかでしか使えないよな〜? いまいち使いみちがわからない。 今度なんかのソースを見てみたい。

-> やっぱそうみたい。 anyにできるところをジェネリクスに置き換えていく・・・みたいな目安?

fooMedthod(bar:ほにゃらら: keyof T){
    console.log(bar);
}

keyofをこうやって使えばいいのね!!

参考

https://dev.to/micahriggan/typescript-generics-c8b