TypeScript | 基礎文法:変数・基本型 – string型

TypeScript
スポンサーリンク

string型とは何か

TypeScriptのstring型は、「文字列」を表すための基本型です。人の名前、メッセージ、住所、IDなど、「文字の並び」で表現されるものはすべてstringで扱います。TypeScriptでは、JavaScriptと同じく、文字列はプリミティブ型のひとつとして扱われ、stringという型名で表現します。

let message: string = "こんにちは";
let name: string = "田中太郎";
TypeScript

ここでmessagenameも、「文字列しか入れない」と宣言された変数です。あとから数値や真偽値を代入しようとすると、TypeScriptがコンパイル時にエラーとして教えてくれます。


文字列リテラルの書き方(” ‘ ` の違い)

ダブルクォート・シングルクォート・バッククォート

TypeScript(というかJavaScript)では、文字列は次の3つのどれで囲んでもstring型になります。

let a: string = "Hello";
let b: string = 'Hello';
let c: string = `Hello`;
TypeScript

Javaなどの言語だと「ダブルクォートは文字列、シングルクォートは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;             // エラー
TypeScript

title: 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型で変数やオブジェクトにしてみるといいです。

タイトルとURLをコピーしました