#はじめに
TypeScriptについて勉強をしているので、アウトプットとして数回に分けて投稿していきます。
#Boolean
最も基本的なデータ型であるBoolean型
はtrue/falseを指定します。
let isFinished: boolean = false;
#Number
数値はnumber型
、hex型
、binary型
、octal型
、big型
が用意されています。
let decimal: number = 6;
let hex: number = 0xf00d;
let binary: number = 0b1010;
let octal: number = 0o744;
let big: bigint = 100n;
#String
文字列に対してはstring型
を用います。
let color: string = "blue";
color = 'red';
#テンプレートリテラル
バッククウォート(`)
で文字列を囲み、${}
を使って式を記述します。
let fullName: string = `Taro`;
let age: number = 33;
let sentence: string = `Hello, my name is ${fullName}. I'll be ${age + 1} years old next month.`;
#Array
配列を書く方法は2つあります。
let list: number[] = [1, 2, 3];
let list: Array<number> = [1, 2, 3];
#Tuple
Tuple型
は複数の値を保持する配列に対し、型の順序を制限することのできる型です。
以下の例では0番目にstring型、1番目にnumber型しか置けない様に制限しています。
let color: [string, number]
vote = ['red', 100]; // OK
vote = ['green', 200]; // OK
vote = ['yellow', 300]; // OK
vote = ['AAA', 'BBB']; // Error
#Enum
デフォルトでは、各要素の値として先頭から順番に 0、1、2 という連番の整数値が内部的に割り当てられます。
enum Sports {
Soccer, //= 0
Baseball, //= 1
Basketball //= 2
}
console.log(Sports.Soccer); //=> 0
console.log(Sports[Sports.Baseball]); //=> Baseball
#Any
any型
の値はどんな型とも相互変換可能であり、実質TypeScriptの型システムを無視することに相当します。
どんな値でも代入可能であるため、なるべく使用しないことが望ましいとされています。
const age: any = 23;
const name: string = age;
#Void
Void型
はreturn時に値を返さないことを示します。
function foo(name: string): void {
console.log(`Hello, ${name}`);
}
#Never
Never型
はreturnすることがない関数を示します
function error(msg: string): never {
throw new Error(msg);
}
#Void型とNever型の違い
・Void型
→ returnされる値がないことを意味する(呼び元には必ず帰ってくる)
・Never型
→ return自体がされない
#Object
object型は「プリミティブ以外の値の型」(number, string, boolean, bigint, symbol, null, undefined以外の型)です。
JavaScriptにはオブジェクトのみを引数に受け取る関数があり、そのような関数を表現するための型です。
declare function create(o: object | null): void;
// OK
create({ prop: 0 });
create(null);
create(42); //エラー:Argument of type '42' is not assignable to parameter of type 'object | null'.
#参照