最近流行りのTypeScriptがずっと気になっていたので最初は遊んで実務レベルまで持って行きたい。
型について
もし型を指定しない場合は、型推論で勝手に決めてくれる、それをやっていいかは別。
// 真偽値
let bool: boolean = true;
// 数値
let num: number = 0;
// 文字
let str: string = "A";
// 配列
let arr: Array<number> = [0, 1, 2];
// 配列で複数の方を使いたい時はパイプで繋いで上げる(=共用型と言う)
var word: (string | number)[] = ['a', 'b', 1];
// tuple
let tuple: [number, string] = [0, "A"];
// any すべてのデータ型OK!
let any1: any = false;
// void 返却値なし
const funcA = (): void => {
const test = "TEST";
};
// null
let null1: null = null;
// undefined
let undefined1: undefined = undefined;
// object
let obj1: object = {};
// enum型 定数を列挙する型
enum code {
space = 8,
tab = 9,
}
console.log(code.space);
// 値を入れない場合は勝手にインデックスがふられる
enum chara {
bob,
anri,
tanaka,
}
console.log(chara.bob) // 0
console.log(chara.anri) // 1
アクセサメソッド
プロパティ名と同じアクセサメソッドは定義できない
class Animal {
private _legs = 4;
// アクセサメソッド(getter,setter)
get legs() {
return this._legs;
}
set legs(value: number) {
this._legs = value;
}
}
ジェネリック
クラスの外側からクラス内部の型指定ができる
// ジェネリック
class num {
data: number;
}
class str {
data: string;
}
// いくつもクラスを作らずにインスタンス化したタイミングで型を決めてあげる
class Stotre<T> {
data: T;
}
let data = new Stotre<string>();
// 複数指定も可能
class Component<T, U> {
name: T;
id: U;
}