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?

【備忘録】TypeScript入門 #1 型の基本

2
Posted at

はじめに

Next.js / NestJSのコードを読めるようになりたくて、まずはTypeScriptの基礎から学習する。
今回はTypeScriptの基本となる「型」について、学んだ内容を備忘録としてまとめます。

環境

今回使用した環境。

  • macOS
  • Node.js:v25.1.0
  • npm: 11.6.2
  • TypeScript: Version 7.0.2

バージョンは以下で確認。

node -v
npm -v
npx tsc -v

TypeScriptとは

TypeScriptは、JavaScriptを拡張して型を扱えるようにした言語。

JavaScriptでは以下のように、最初に文字列を入れた変数へ数値を入れることもできる。

let userName = "Yamada";

userName = 123;

TypeScriptでは型を指定できる。

let userName: string = "Yamada";

userName = 123;

userNameはstringとしているため、numberの123を入れるとエラーになる。

型を指定することで、値の種類が違う場合にコードを書いている段階で気づける。

型とは

型は、その値が何の種類なのかを表すもの。

まずは以下の3つ。

型 意味 値の例
string 文字列 "Yamada"
number 数値 30
boolean 真偽値 true, false
const userName: string = "Yamada";
const age: number = 30;
const isAdmin: boolean = false;

string

stringは文字列。

const userName: string = "Yamada";
const email: string = "example@example.com";

文字列は"や'で囲む。

以下はstringに数値を入れているためエラーになる。

const userName: string = 100;

number

numberは数値。

const age: number = 30;
const price: number = 1000;

整数だけでなく、小数もnumberになる。

const taxRate: number = 0.1;

以下はどちらも見た目は30だが、型は異なる。

30

はnumber。

"30"

はstring。

boolean

booleanはtrueまたはfalseを扱う。

const isAdmin: boolean = false;
const isLoggedIn: boolean = true;

ログインしているか、管理者かどうかなど、true / falseで持つ値に使う。

実際に動かしてみる

学習用の環境を作って実際に動かしてみた。

環境構築

ディレクトリを作成。

mkdir typescript-study
cd typescript-study

npmプロジェクトを作成。

npm init -y

TypeScriptをインストール。

npm install --save-dev typescript

tsconfig.jsonを作成。

npx tsc --init

今回はlesson01.tsを作成した。

実行

lesson01.tsに以下を記述。

const userName: string = "Yamada";
const age: number = 30;
const isAdmin: boolean = false;

console.log(userName);
console.log(age);
console.log(isAdmin);

コンパイル。

npx tsc

エラーは発生しなかった。

生成されたlesson01.jsを実行。

node lesson01.js

実行結果。

Yamada
30
false

型を間違えてみる

ageを以下に変更。

const userName: string = "Yamada";
const age: number = "30";
const isAdmin: boolean = false;

再度コンパイル。

npx tsc

以下のエラーが発生した。

lesson01.ts:2:7 - error TS2322: Type 'string' is not assignable to type 'number'.

2 const age: number = "30";
        ~~~


Found 1 error in lesson01.ts:2

ageはnumberなのに、stringの"30"を入れているためエラーになった。

Type 'string' is not assignable to type 'number'.

stringはnumberに代入できない、という内容。

以下のように数値へ戻すとエラーはなくなった。

const age: number = 30;

型が違う場合はコンパイル時に検出できることが確認できた。

tsc実行時にTS5112が発生

最初は以下でコンパイルしようとした。

npx tsc lesson01.ts

すると以下のエラーが発生。

error TS5112: tsconfig.json is present but will not be loaded if files are specified on commandline. Use '--ignoreConfig' to skip this error.

今回はtsconfig.jsonを作成しているため、ファイル名を指定せずに実行した。

npx tsc

型推論

TypeScriptでは毎回型を書く必要はない。

例えば以下。

const userName = "Yamada";

型を書いていないが、"Yamada"からTypeScriptがstringと判断する。

const age = 30;
const isAdmin = false;

この場合も、

  • ageはnumber
  • isAdminはboolean

と判断される。

この仕組みを型推論という。

実際のコードでは型が書かれていないこともあるので、型指定がない = 型がない、ではない。

実際のコード例

Next.jsやNestJSのコードでは、以下のような形も出てくる。

type User = {
  id: number;
  name: string;
  isAdmin: boolean;
};

typeについては別途学習するが、

id: number;
name: string;
isAdmin: boolean;

を見ると、

  • idは数値
  • nameは文字列
  • isAdminはtrue / false

を扱うことが分かる。

まずはこのあたりが読めればよさそう。

まとめ

今回はTypeScriptの型について確認した。

  • stringは文字列
  • numberは数値
  • booleanはtrue / false
  • 型が違う値を入れるとコンパイル時にエラーになる
  • 型を書いていなくても型推論される場合がある

まだ基本部分だが、Next.js / NestJSのコードを読むためにもこのあたりから覚えていく。

次は変数・配列・オブジェクトについて確認する。

参考

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?