何かあればご指摘大歓迎です
オブジェクトの作り方
let obj: { [index: string]: string; } = {
'hoge': 'ほげ',
'foo': 'ふー'
}
console.log(obj.hoge);
console.log(obj['hoge'])
interfaceを使ってもよい
interface StringMap {
[index: string]: string;
}
let obj: StringMap = {
'hoge': 'ほげ',
'foo': 'ふー'
}
アロー関数を使ったthis固定の簡素なコード
let triangle = (base: number, height: number): number => base * height / 2;
引数が省略できる関数は ? をつける
swiftのoptionalのような?
function showTime(time?: Date): string {
// ...
}
デフォルト値がありの引数は引数リストの末尾に書く
不特定多数の引数の表現
これは arguments のようなArrayライクではなく真性のArray
function sum(...values: number[]) {
let result = 0;
for (let value of values) {
result += value;
}
return result;
}
console.log(sum(1, 5, -8, 10));
関数のオーバーロード
ちょっと癖がある
function show(value: number) void;
function show(value: boolean) void;
function show(value: any): void {
if (typeof value === 'number') {
console.log(value.toFixed(0));
} else {
console.log(value ? '真' : '偽');
}
}
show(10.358);
show(false);
show('hoge');
typeofはプリミティブ型の判定しかできない。クラス型ならinstanceof。