0
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?

More than 1 year has passed since last update.

【TypeScript】型定義1 (プリミティブ型、リテラル型など)

Posted at

はじめに

TypeSctipt勉強中の👶です。
理解を深めるために日々の学びを記事にしています。
初心者の記事なので言い回しや記載に誤りがあるかも知れませんが、暖かく見守っていただけると幸いです。
まだ学習半ばなので、学習進めていく上でこの記事も工事🚧するかもしれません。
(よろしければ間違いをコメントいただけると学び、励みになります!)

学んだこと

  • 静的型付け言語とは
  • プリミティブ型
  • リテラル型
  • any型
  • ユニオン型

TypeScriptは静的型付け言語

動的型付け言語けは実行時に初めて決まります。
対して、静的型付け言語はコンパイル時にエラーで出力されるので、おかしな代入をしていたり、変数名を誤字っていたりすると早期発見できます。型定義でバグを事前に防げる点から、型安全性と呼ばれTypeScriptの利点によく挙げられます。

変数宣言

型を指定することを型注釈(type annotation; 型アノテーション)といいます。

const 変数:  = ;

プリミティブ型

const text: string = "abc";
const num: number = 111;
const isPanda: boolean = true;
const x: null = null;
const y: undefind = undefind;
const bignum: bigint = 9007199254740992n;
const sym: Symbol = Symbol();

BigInt型 (補足)

  • 任意精度の整数が対象。小数などは使用不可。
  • 大きな整数値を表したい時に使用できる。
  • number型と併用が不可。
  • number型より処理が重い。
  • 比較的新しい機能で古いブラウザで利用できない。

シンボル型 (補足)

シンボルとは、一意性を示す値のことです。
下記の場合、同じstring型"foo"という値が入っているが、s1s2で定義が異なるのでシンボル値の比較s1===s2falseを返します(型は一緒、値が違う)。

const s1: symbol = Symbol("foo");
const s2: symbol = Symbol("foo");

console.log(s1 === s1); //=> true
console.log(s1 === s2); //=> false

リテラル型

特定の値だけを代入可能にする型。

// true以外が代入されるとエラーになる
const isTrue: true = true;
const isTrue: true = false; // =>エラー

// 数値の123以外が代入されるとエラーになる
let num: 123 = 123;
num = 55; //=>エラー

型推論

型注釈を省略しても勝手に解釈してくれます。型推論できない場合は、any型が付与されます(後述)。

const str = "foo"; // =>’foo’型と推論される
let str = "bar";  // =>string型と推論される

ユニオン型

2つ以上の型を定義したいときに使用します。を or みたいなニュアンスで使用できるんですね。

let numberOrUndefined: number | undefined;

any型

どんな型でも代入できる型。コンパイラーの型チェックから外れます。
文字列型の値に対して数値型のメソッドを使用する、など明らかな矛盾以外はコンパイラーが警告しなくなります。
型を省略して、コンテキストから型推論できない場合も暗黙的に型をanyとして扱います。any型をチェックしたい場合、tsconfig.json にて noImplicitAny: true を設定することで、TypeScriptが型をany型と推測した場合にエラーが発生するようになります。

参考

下記を参考に勉強させていただきました🌱
TypeScriptの型入門 - Qiita
TypeScript入門『サバイバルTypeScript』〜実務で使うなら最低限ここだけはおさえておきたいこと〜

0
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
0
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?