type

type

typescript で、新しい名前の型を作る型エイリアス

以下は string の Name 型を作成してつかっています。

type Name = string;
const name: Name = "ohasi";
console.log(name); //ohasi

昨日書いたようにオブジェクトでも使えます。

type human = { name: string; age: number };
const obj: human = { name: "ohasi", age: 30 };
console.log(obj);

元々の型を指定するだけではなく、具体的な要素も指定できます。 男が女かしか受け付けないような型。他の値を入れるとエラーになります。

type SEX = "W" | "M";
const sex: SEX = "W";
const error: SEX = "a"; //TS2322: Type '"a"' is not assignable to type 'SEX'.

3 つを組み合わせた型はこんな感じ。また、?をつけるとその引数は省略することができます。

type Human = {
  name: string;
  age?: number;
  sex: "M" | "W";
};

const ohasi: Human = {
  name: "ohasi",
  age: 30,
  sex: "W",
};
const osusi: Human = {
  name: "osusi",
  sex: "M",
};

関数の型も書けます。

type ADD = (num1: number, num2: number) => number;
const add: ADD = (num, num2) => num + num2;
console.log(add(1, 3)); //4

こんな書き方もあるみたいです。
この場合、中に複数の関数型を記載できるので、オーバーロードする場合に使うとのこと。

type ADD = {
  (num1: number, num2: number): number;
};
const add: ADD = (num, num2) => num + num2;

終わり。