TypeScript - 変数の型

公開日:2019-01-15 更新日:2019-05-14

1. 概要

変数の型を指定します。

let 変数名: 変数の型;

TypeScript の数値型は number のみです。
Object、any、unknown は、全ての型の値を入れることができます。
違いとしては、instanceof Object はできるが instanceof any はできない、
unknown は Type Assertion で型を明確にして使用しないとビルドエラーとなる、などがあります。

また、変数の型はビルド時のチェックでのみ?使われ、<any> でキャストをすると、
数値型で定義した変数に文字列を入れることができます(2.3 サンプル)。

2.1 サンプル

let b1: boolean = true;
let b2: boolean = false;
let b3: boolean = null;
let b4: boolean = undefined;

let n1: number = 1;
let n2: number = 0.5;
let n3: number = null;
let n4: number = undefined;
let n5: number = NaN;

let s1: string = "Hello";
let s2: string = 'Hello';

let o1: Object = 1;
let o2: Object = 0.5;
let o3: Object = null;
let o4: Object = undefined;
let o5: Object = NaN;
let o6: Object = [1, 2, 3];
let o7: Object = function () { };

let a1: any = 1;
let a2: any = 0.5;
let a3: any = null;
let a4: any = undefined;
let a5: any = NaN;
let a6: any = [1, 2, 3];
let a7: any = function () { };

let un1: unknown = 1;
let un2: unknown = 0.5;
let un3: unknown = null;
let un4: unknown = undefined;
let un5: unknown = NaN;
let un6: unknown = [1, 2, 3];
let un7: unknown = function () { };

let u1: undefined = undefined;
let u2: undefined = null;

let nu1: null = undefined;
let nu2: null = null;

let ary1: number[] = [1, 2, 3];
let ary2: string[] = ["a", "b", "c"];

2.2 サンプル

型を指定しない場合は、代入された値によって型が決定します。
型が決まった後は、別の型の値を入れることはできません。
他の型の値を入れる場合は、any や unknown を使います。

let no1: number = 5;

let no2 = no1;
let no3 = 5;

//no2 = "a"; //ビルドエラー
//no3 = "a"; //ビルドエラー

2.3 サンプル - Type Assertion

「<型> 変数名」または「変数名 as 型」で、キャストのようなことができます。
定義時の型とは異なる型の値が代入できるため、要注意。

let s: string = "test";

//n に文字列が代入される。
let n: number = <any>s;
//または、let n: number = s as any;

//定義時の型でチェックされるため、ビルドエラーとなる
//n = "abc";

console.log(n);        //test
console.log(typeof n); //string

//文字列として結合されます。
console.log(n + 123); //test123

2.4 サンプル

他の変数の型、と言う指定方法で型を定義できます。用途不明。。

let n: string;

let v: typeof n; //変数の n と同じ型を使う

v = "abc";
console.log(v); //abc