TypeScript #2 それぞれの型

TypeScriptの大きな特徴である変数のデータ型に関してまとめていきたいと思います。
変数の型は数値、文字列から、配列、オブジェクトなど様々なものがりますので一つずつどんなものか見ていきましょう。

今回は基本の「き」のプログラムでもっともよく使う以下の型を見ていこうと思います。

  • number型とbigint型
  • string型
  • boolean型

number型とbigint型

TypeScriptでは数値を取り扱うデータ型にnumber型、とbigint型の2つがあります。それぞれの違いは以下となりますが、プログラムの多くではnumber型を使うことが多いと思います。

number型整数、浮動小数点、進数(2/8/16進数)などを取り扱う
bigint型整数の範囲を大きく超えた値を取り扱うに使う

ちなみにbigint型の整数の範囲を大きく超えた数字っていくつ?となりますので、JavaScriptのNumberが取りうる大きい値は「Number.MAX_VALUE」で調べられて、結果「1.7976931348623157e+308」という非常に大きい数のため数学や科学演算でもしない限りつかうことはないと思います。
また、この2つのデータ型に互換性はないので、代入や比較演算ではエラーとなるので注意が必要です。

それでは使う頻度の多いnumber型に関して見ていきましょう。
以下のように記述します。JavaScriptの記述と比較するとわかりますが、TypeScriptでは変数のあとに型を指定します。「変数:型」と記載します。型を書き忘れてもエラーにはなりません、TypeScriptのトランスコンパイラがJavaScrit同様に型推論(取り扱っているデータをもとにコンパイラが判断してくれる)を行ってくれます、ただそれではTypeScriptの利点をなくしてしまうので、基本的には型注釈(型アノテーション)するコードを書くようにしましょう。

// 変数名:numberで書く
let year: number = 2020;
console.log(year);

// JavaScriptならこんな感じです。
var year = 2020;
console.log(year);

// ちなみに進数はこんな感じでかけます。
let binary: number = 0b1010;
let octal: number = 0o744;
let hex: number = 0xf00d;

String型

String型とは文字列を扱うデータ型のことです。書き方は、以下のようになります。
基本的にはJavaScriptと同様に、二重引用符(")または一重引用符()を使用'して文字列データを囲みます。

// 変数名:string で書いて、文字列は引用符で囲む
let name:string = 'Qtaro';
console.log(name);

これだけだとさすがに寂しいのでいくつか小ネタを書いていきます。
文字列を取り扱う上で、エスケープ文字(改行や引用符を文字として扱うなど)に関してはJavaScriptと同じものになります。

// こうかけば改行される
let name: string ="Hello \n \"Qtaro\"";
console.log(name);

//実行結果(このように表示される)
Hello 
 "Qtaro"

このままでももちろん良いのですが、JavaScript同様にテンプレート文字列という書き方が使えます。そのためこのようなコードの書き方ができます。ぱっと見て、エスケープ文字を書くより改行が入っているのがわかりやすいですよね。

// テンプレート文字列は文字列を「`」で囲む
let name: string =`Hello
"Qtaro"`;

console.log(name);

Boolean型

Boolean型とは真偽値の型のことです。
次の2つの値のみ取ることができ、それ以外の数字、文字列は代入することができません。

true条件が成立した場合にtureを設定する
false条件が成立しない場合にfalseを設定する

以下のようにtrue、falseは代入できますが、例えば成功値を「0」と定義して使う場合にはこの変数に代入することはできません。

//こんな使い方になる。文字列ではないので、引用符で囲む必要はない
let checkSum:boolean = true;
let isCompleted: boolean = false;
console.log(checkSum);
console.log(isCompleted );

//これはだめ。
let checkFlag:boolean = 0;

さいごに

どうでしょうか。基本的な文法はJavaScirptなのでJavaScriptを理解されている人にとっては特段難しいことはないと思います。さらにプログラミングエディタを利用していると、コード記述時に自動的に型推論を行ってくれたり、型誤りなどのエラーをトランスコンパイル前に検知してくれたりと、JavaScriptよりより安全なコードをかける仕掛けがあったりします。
次回も、まだまだたくさんの型があるので少しずつまとめていきたいと思います。

Program,TypeScript

Posted by Qtaro