2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

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

Last updated at Posted at 2020-12-14

はじめに

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

まとめ

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

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?