notitie

日々感じたことをメモ書き

TypeScriptの概要と型種類について調べてみた

はじめに

TypeScriptを勉強し始めたので忘れないためにメモ書きする。

なぜTypeScriptを使うのか

結論から言うと、型を厳密に定義するためにTypeScriptを使う。
JavaScriptは動的型付け言語といって、変数にどんなデータ型(文字列、数値、真偽値など)でも代入できるので簡単に上書きができてしまう。
この柔軟性によって、大規模な開発になるとプログラムが意図しない動作になったり、バグの原因になることがあり、型の曖昧さが問題となっていた。

そこでJavaScriptを拡張したTypeScriptが登場。
TypeScriptはJavaScriptと違い、静的型付け言語と呼ばれている。これはデータ型を厳密に定義することで、変数に別の型を代入することを許さない。TypeScriptの「Type」はデータの「型」を指す。

//JavaScriptの場合
var title = 'プログラミング'; //文字列を代入
title = 100; //数値を代入してもエラーにはならず、変数が上書きされる

//TypeScriptの場合
var title: string = 'プログラミング'; //変数titleにstring型を定義し、文字列を代入
title = 100; //数値を代入するとエラーになる。これは100は数値型であって、string型ではないから

TypeScriptの型種類について

//string型
var title: string = 'こんにちは';

//number型
var num: number = 55;

//boolean型
var isChecked: boolean = true;

//配列型(配列の中身の型宣言)
var array: string[] = { 'name', 'email', 'body'};
var numbers: number[] = [1, 2, 4];

//オブジェクト型(キー名とプロパティの型宣言)
var options: { [key: string]: string; } = { name: 'yushi' };

//タプル型
var date: [number, string, number] = [0, 'apple', 1000];

//any型(どんな型でも代入できる)
var other: any = 'りんご';

/複数の型宣言
var sample: string | number;
sample = 'おはよう';
sample = 10;
sample = true; //boolean型のためエラーになる

TypeScriptの型推論

TypeScriptでは変数に型宣言をしなかった場合、自動的に型推論をしてくれる。しかし、絶対的なものではないので型指定できるのであれば指定した方が良いみたい。

var unknown = 'おはよう'; //型宣言せずに文字列を代入
unknown = 10; //数値を代入するとエラーになる。これは上の'おはよう'をstring型として推測したため