0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

TypeScriptで定義できる型まとめ

Last updated at Posted at 2022-04-18

概要

TypeScriptで定義できる型をまとめる

tscコマンド

tscコマンドでtsファイルをjsファイルへ変換する

tsc index.ts

ES5へのコンパイラ

ほぼすべてのブラウザが対応しているES5へコンパイルすることができる
例:ES6への変更

tsc index.ts --target es6

型注釈と型推論

基本的には型推論が推奨。初期化する際は型注釈を使用するのがおすすめ。

// 型注釈
let hasValue1: boolean = true;
let count: number = 10;
let float:  number = 3.14;
let negative: number = -12;
let single: string = "hello";

// 型推論
let hasValue2: boolean;

オブジェクト

このように定義できるが、基本的には型推論に任せ省略する。

const person: {
    name: string;
    age: number;
} = {
    name: 'Jack',
    age: 21
}

配列

型推論にすれば文字列だけではなく数字も入るようななんでも入る配列を作成することができる。

const fruits: string[] = ['apple', 'banana'];

Tuple型

配列の中身の型を型注釈で定義する事ができる

const book: [string, number, boolean] = ['business', 2, true];

Enum

enum CoffeeSize {
    SHORT = 'SHORT',
    TALL = 'TALL',
    GRANDE = 'GRANDE',
    VENTI = 'VENTI'
}

const coffee = {
    hot: true,
    size: CoffeeSize.SHORT
}

any型

なんでもありの型

let anything: any = true;
anything = "aaaa";
anything = 2;

// string型で定義した変数にany型を代入してもエラーは出ない
let banana: string;
banana = anything;

union型

複数の方を同時に定義

let union: number | string = 10;

Literal型

特定の値のみしか受け付けない型

const apple: true = true;

// だめ
const apple: true = 'hello';


let clothSize: 'small' | 'medium' | 'large' = 'large';
// OK
clothSize = 'small';
// NG
clothSize = 8888;

typeエイリアス

型を変数に定義することができる

type ClothSize = 'small' | 'medium' | 'large';
let clothSize: ClothSize = 'large';

関数へ型を適用

function add(num1: number, num2: number): number {
    return num1 + num2;
}

add(2, 8);

void型とundefined型

返り値がない関数にはvoid型を定義することができる。
console.logで出力した場合undefinedが表示されるため、返り値にundefinedを指定することもできるが、その際は必ずretuenが必要。
しかし、ほとんどの場合はundefined型を返り値として定義することはないため、void型を使っておけば大丈夫。

function sayHello(): void {
    console.log('Hello');
}

関数型

変数に代入する関数へ型を指定したい場合
コロンが重複してしまうため、アローを使って返り値を定義する

const doubleNumber: (num: number) => number = number => number * 2;

callback関数へ型をつける

function doubleAndHandle(num: number, cb: (num: number) => number): void {
    const doubleNum = cb(num * 2);
}

doubleAndHandle(21, doubleNum => {
    return doubleNum;
});

unknown型

any型とは違いunknown型はどんな型でも一度は代入することができるが、違う型を更に代入することはできない

// unknown型
let unknownInput: unknown;
let text: string;
text = 'gggg';
// NG
text = unknownInput;

error型

void型はundefinedを返すが、never型は何も返さない場合に使用する。
以下のようにerrorの場合や、whileで終わらないループ処理を実行する際にも使用されるらしい。

// never型
function error(message: string) {
    throw new Error(message);
}
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?