サムネがコーヒーの記事は書きかけです。

Typescript ジェネリクス

下記のような共通のプロパティを持つオブジェクトを引数とする関数がある時、input型をOptionalにしたい場合があります。この時に使えるTypescriptのジェネリクスのテンプレートを書いておきます。

interface TypeA {
    prop1: string;
    prop2: string;
    prop3: number;
}

interface TypeB {
    prop1: string;
    prop2: string;
    prop3: number;
    prop4: string;
}

const a: TypeA = {
    prop1: '1',
    prop2: '2',
    prop3: 3
}

const b: TypeB = {
    prop1: '1',
    prop2: '2',
    prop3: 3,
    prop4: '4'
}
const multiplyProp3By2 = <T extends TypeA,>(obj: T): T => {
    return {
        ...obj,
        prop3: obj.prop3 * 2
    }
}

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です