Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
0
Help us understand the problem. What are the problem?

posted at

updated at

Organization

TypeScriptのジェネリクスについて(初心者向け)

はじめに

TypeScript Deep Diveを読み学習したことを残します。

普段の開発では主にPHPを使っていますが、ジェネリクスという概念がPHPにはなく、どういったものなのか備忘録を兼ねて投稿します。

ジェネリクスとは

クラスのインスタンスメンバや、関数の引数や戻り値などに、型の制約を設けるためのパラメータを指定できる機能です。
引数に渡した配列の1つを返す shift 関数を例にすると、以下のように記述します。

// <T> の部分がジェネリクス。
function shift<T>(items: T[]): T {
  return items[0];
}

どういったメリットがあるのか

上記の shift 関数では、引数と戻り値の型を強制できます。

// <T> の部分がジェネリクス。引数に渡した配列の1つを返す。
function shift<T>(items: T[]): T {
  return items[0];
}

let num = shift([1, 2, 3]); // num は number 型
let str = shift(['one', 'two', 'three']); // str は string 型

num.replace(); // Error
str.toFixed(); // Error

まとめ

以上、ジェネリクスについてでした。
ジェネリックを使ったデザインパターンについても色々テクニックがありそうですので、いずれ記事を投稿したいと思います。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
0
Help us understand the problem. What are the problem?