🚀 TypeScriptってどんな言語?
JavaScriptに“型(Type)”という魔法のアイテムをプラスして、
大規模プロジェクトでも安心して戦えるスーパーツール。
最終的にはJavaScriptに変換されるので、どんな環境でもそのまま動いちゃいます!
🎯 型があると何が嬉しい?
- バグの予防線
実行前に「そこは文字列じゃないよ!」と教えてくれるので、思わぬ落とし穴にハマらない。 - 開発はカーナビ付き
VS Codeなどのエディタが「ここには数字が必要です」「この関数は文字列を返します」とアシスト。 - コードがドキュメント化
型を書けば、そのまま「どう使うか」の説明書に。 - チーム開発の心強い味方
「あの変数、何が入るんだっけ?」が激減し、コードの理解度がグッとアップ。
🛠️ よく使う“型”いろいろ
それでは、実際に例を見ながらTypeScriptの型をざっくり解説!
1. プリミティブ型(基本型)
let name: string = "Alice"; // 文字列
let age: number = 30; // 数値
let isAdmin: boolean = false; // 真偽値
ポイント: JavaScriptだと何でも入れられた変数に、それぞれ「これは文字列ですよ!」とラベルを貼ります。
2. 配列型
let scores: number[] = [100, 85, 90];
let fruits: Array<string> = ["apple", "banana", "orange"];
豆知識:
number[]
とArray<number>
、どちらでもOK。お好みでどうぞ!
3. タプル型
// [ID, 名前, 管理者フラグ]
let userData: [number, string, boolean] = [1, "Bob", true];
タプルは「要素の型と順番がガッチリ固定された配列」。これで「ID→名前→フラグ」の順番は鉄壁!
4. 列挙型(enum)
enum Color { Red, Green, Blue }
let c: Color = Color.Green; // 1が入る
enum Direction {
Up = "UP",
Down = "DOWN",
Left = "LEFT",
Right = "RIGHT"
}
enumは関連する定数をまとめて管理。数値でも文字列でもOK!
5. ユニオン型
let id: string | number;
id = "abc123";
id = 456;
ユニオン型は「文字列か数値か、どっちか選べるよ」という宣言。柔軟だけど安心感大。
6. 交差型(Intersection)
interface HasName { name: string; }
interface HasAge { age: number; }
type Person = HasName & HasAge;
let p: Person = { name: "Carol", age: 28 };
両方のインターフェースを満たす “スーパーオブジェクト” の完成!
7. リテラル型
let day: "Mon" | "Tue" | "Wed";
day = "Tue";
// day = "Fri"; // これはエラー!
変数に「これだけ!」とピンポイント指定できる型です。
8. type エイリアス
type Point = { x: number; y: number; };
let pt: Point = { x: 10, y: 20 };
長いオブジェクト型は「別名」でまとめてスッキリ。
9. interface
interface User {
id: number;
name: string;
email?: string; // 任意プロパティ
}
const u: User = { id: 100, name: "Dave" };
interface
は拡張性バッチリ。後からextends
で組み合わせもできるよ。
10. 関数の型注釈
function multiply(a: number, b: number): number {
return a * b;
}
type Adder = (x: number, y: number) => number;
const add: Adder = (x, y) => x + y;
関数も「何を渡して、何を返すか」がガッチリ宣言できます。
11. ジェネリクス(総称型)
function wrap<T>(value: T): { wrapped: T } {
return { wrapped: value };
}
const numWrapped = wrap(42); // { wrapped: 42 }
const strWrapped = wrap("hello"); // { wrapped: "hello" }
ジェネリクスで「どんな型でもイケます!」な汎用関数が作れちゃう。
🎉 まとめ
- TypeScriptはJavaScriptに「安心の型検査」をプラス。
- 小さなプロジェクトから導入OK、慣れてきたら大型開発にもガッチリ対応。
- まずは「プリミティブ型」→「配列・タプル」→「インターフェース」あたりを触ってみて、ゆっくりステップアップ!
型の世界に一歩踏み込めば、バグに悩まされる日々から解放されるかも?
ぜひTypeScriptで、楽しく&安全にコードを書いてみてくださいね!✨