4
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 3 years have passed since last update.

トラストAdvent Calendar 2020

Day 1

【TypeScript】 基本的な型

Last updated at Posted at 2020-11-30

#はじめに
TypeScriptについて勉強をしているので、アウトプットとして数回に分けて投稿していきます。

#Boolean
最も基本的なデータ型であるBoolean型はtrue/falseを指定します。

let isFinished: boolean = false;

#Number
数値はnumber型hex型binary型octal型big型が用意されています。

let decimal: number = 6;
let hex: number = 0xf00d;
let binary: number = 0b1010;
let octal: number = 0o744;
let big: bigint = 100n;

#String
文字列に対してはstring型を用います。

let color: string = "blue";
color = 'red';

#テンプレートリテラル
バッククウォート(`)で文字列を囲み、${}を使って式を記述します。


let fullName: string = `Taro`;
let age: number = 33;
let sentence: string = `Hello, my name is ${fullName}. I'll be ${age + 1} years old next month.`;

#Array
配列を書く方法は2つあります。


let list: number[] = [1, 2, 3];

let list: Array<number> = [1, 2, 3];

#Tuple
Tuple型は複数の値を保持する配列に対し、型の順序を制限することのできる型です。
以下の例では0番目にstring型、1番目にnumber型しか置けない様に制限しています。


let color: [string, number]
vote = ['red', 100];     // OK
vote = ['green', 200];   // OK
vote = ['yellow', 300];  // OK
vote = ['AAA', 'BBB'];   // Error

#Enum

デフォルトでは、各要素の値として先頭から順番に 0、1、2 という連番の整数値が内部的に割り当てられます。


enum Sports {
  Soccer,   //= 0
  Baseball,  //= 1
  Basketball   //= 2
}

console.log(Sports.Soccer);  //=> 0
console.log(Sports[Sports.Baseball]);  //=> Baseball

#Any

any型の値はどんな型とも相互変換可能であり、実質TypeScriptの型システムを無視することに相当します。
どんな値でも代入可能であるため、なるべく使用しないことが望ましいとされています。


const age: any = 23;
const name: string = age;

#Void
Void型はreturn時に値を返さないことを示します。


function foo(name: string): void {
  console.log(`Hello, ${name}`);
}

#Never
Never型はreturnすることがない関数を示します


function error(msg: string): never {
  throw new Error(msg);
}

#Void型とNever型の違い
Void型 → returnされる値がないことを意味する(呼び元には必ず帰ってくる)
Never型 → return自体がされない

#Object
object型は「プリミティブ以外の値の型」(number, string, boolean, bigint, symbol, null, undefined以外の型)です。
JavaScriptにはオブジェクトのみを引数に受け取る関数があり、そのような関数を表現するための型です。


declare function create(o: object | null): void;

// OK
create({ prop: 0 });
create(null);

create(42); //エラー:Argument of type '42' is not assignable to parameter of type 'object | null'.

#参照

TypeScript Documentation:BasicTypes
TypeScriptの型入門

4
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
4
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?