実行時に型が決まる静的型付けの 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