string型とは何か
TypeScriptのstring型は、「文字列」を表すための基本型です。人の名前、メッセージ、住所、IDなど、「文字の並び」で表現されるものはすべてstringで扱います。TypeScriptでは、JavaScriptと同じく、文字列はプリミティブ型のひとつとして扱われ、stringという型名で表現します。
let message: string = "こんにちは";
let name: string = "田中太郎";
TypeScriptここでmessageもnameも、「文字列しか入れない」と宣言された変数です。あとから数値や真偽値を代入しようとすると、TypeScriptがコンパイル時にエラーとして教えてくれます。
文字列リテラルの書き方(” ‘ ` の違い)
ダブルクォート・シングルクォート・バッククォート
TypeScript(というかJavaScript)では、文字列は次の3つのどれで囲んでもstring型になります。
let a: string = "Hello";
let b: string = 'Hello';
let c: string = `Hello`;
TypeScriptJavaなどの言語だと「ダブルクォートは文字列、シングルクォートは1文字」といった区別がありますが、TypeScriptではどれも同じstringです。
好みやプロジェクトのコーディング規約で統一して使うのが一般的です。
エスケープと改行の扱い
ダブルクォートやシングルクォートで囲んだ文字列の中に、同じ種類のクォートを含めたいときは、バックスラッシュでエスケープします。
let s1: string = "He said \"Hello\"";
let s2: string = 'I\'m TypeScript';
TypeScriptまた、"..."や'...'の文字列は途中で改行できないので、改行したい場合は\nを使います。
let text: string = "1行目\n2行目";
TypeScriptテンプレートリテラルと文字列の組み立て
バッククォートで書くテンプレートリテラル
バッククォート(`)で囲んだ文字列は「テンプレートリテラル」と呼ばれ、string型でありつつ、改行や式の埋め込みができる強力な書き方です。
const name: string = "太郎";
const message: string = `こんにちは、${name}さん`;
TypeScript${...}の中には、変数だけでなく計算式や関数呼び出しも書けます。
const price: number = 1000;
const taxRate: number = 0.1;
const text: string = `税込価格は${price * (1 + taxRate)}円です`;
TypeScriptテンプレートリテラルは、複数行の文字列もそのまま書けます。
const multi: string = `1行目
2行目
3行目`;
TypeScriptこれらはすべてstring型として扱われるので、「文字列をどう書くか」の選択肢が増えるイメージです。
string型に型注釈を付ける意味
「ここには文字列しか入れない」という約束
TypeScriptでは、変数に型注釈を付けることで、「この変数にはこの種類の値しか入れません」と宣言できます。
let title: string = "TypeScript入門";
title = "string型の勉強"; // OK
// title = 123; // エラー
TypeScripttitle: stringと書くことで、「ここは文字列専用の箱です」とコンパイラに伝えています。
もし数値や真偽値を代入しようとすると、コンパイル時にエラーになり、「型の取り違え」を早い段階で防げます。
型推論とstring型
初期値が文字列であれば、型注釈を書かなくてもTypeScriptが自動的にstringと推論してくれます。
let greeting = "おはよう"; // string と推論される
// greeting = 10; // エラー
TypeScriptこの場合も、あとから数値を代入しようとするとエラーになります。
「最初に文字列を入れたなら、ずっと文字列として扱う」というルールを、コンパイラが守らせてくれるわけです。
string型を使うときに意識したいポイント
「文字列であること」を型で表現する
名前、メールアドレス、メッセージ、IDなど、「文字列であることが前提」の値には、必ずstring型を付ける(あるいは推論させる)習慣をつけると、コードの意図がとても読みやすくなります。
type User = {
id: string;
name: string;
email: string;
};
const user: User = {
id: "u-001",
name: "田中太郎",
email: "taro@example.com"
};
TypeScriptここでは、「idもnameもemailも文字列である」という前提が型に刻まれているので、idに数値を入れたり、emailに間違って別の型を入れたりすると、すぐにエラーになります。
文字列の「形」まで型で表現できる世界もある
少し先の話ですが、TypeScriptには「テンプレートリテラル型」という仕組みがあり、stringの中でも「こういうパターンの文字列だけ許す」といった型を作ることもできます。
たとえば、type Theme = "light" | "dark" | "auto"; のように、「この3つの文字列だけOK」という型を定義することも可能です。
これは「string型の応用編」なので、今は「文字列の世界は、ただのテキスト以上に、型でかなり細かく表現できるんだな」くらいのイメージを持っておけば十分です。
まとめ:string型は「言葉」を安全に扱うための土台
string型は、TypeScriptの中でも最もよく使う基本型のひとつです。
「これは文字列だ」と型で宣言することで、数値や真偽値との取り違えを防ぎ、テンプレートリテラルを使えば、読みやすく安全に文字列を組み立てられます。
次の一歩としては、
名前やメッセージなど、あなたがよく扱いそうな「文字の情報」を、実際にstring型で変数やオブジェクトにしてみるといいです。
