型
実行時に型が決まる静的型付けの javascript とは異なり、typescript は明示的に型を宣言する静的型付け言語です。その宣言方法について。
変数
const n: number = 1; console.log(n); //1
number で数値型を宣言しているので、n に文字列を入れるとコンパイル時にエラーとなります。
const n: number = "1"; TS2322: Type 'string' is not assignable to type 'number'.
文字列の型を宣言するときはこう。
const s: string = "a"; console.log(s); //a
配列
配列を宣言する際は、型の後に[]をつけます。
const arr: number[] = [1, 2, 3]; console.log(arr); // [1, 2, 3]
オブジェクト
オブジェクトの際は key と value の型を明記します。
const obj: { name: string; age: number } = { name: "ohasi", age: 30 }; console.log(obj); //{name: 'ohasi', age: 30, osusi: 'egg'}
お寿司プロパティを追加するとエラーがでます。
const obj: { name: string; age: number } = { name: "ohasi", age: 30 ,"osusi":"egg"}; console.log(obj); TS2322: Type '{ name: string; age: number; osusi: string; }' is not assignable to type '{ name: string; age: number; }'. Object literal may only specify known properties, and 'osusi' does not exist in type '{ name: string; age: number; }'.
ただ、これをインラインで書くのは大変なので型エイリアスを使います。型エイリアスについての説明はまた今度。
type human = { name: string; age: number }; const obj: human = { name: "ohasi", age: 30 }; console.log(obj);
関数
関数は引数と戻り値に設定。戻り値は省略もできるけど、引数は必須です。
const sum = (num1: number, num2: number): number => num1 + num2; console.log(sum(1, 2)); //3
戻り値がないときは void で。
const sum = (num1: number, num2: number): void => console.log(num1 + num2); sum(1, 2); //3