1
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 基本

Posted at

TypeScriptとは

TypeScriptは,JavaScriptを拡張して開発されたOSSのプログラミング言語で,2014年ごろMicrosoftによって開発された.
TypeScriptで書かれたコードをコンパイルするとJavaScriptのコードに変換される.

TypeScriptの特徴

JavaScriptとの互換性

TypeScriptはJavaScriptを拡張したものなので同じ構文が利用できる.また,TypeScriptで書かれたコードはコンパイルするとJavaScriptのコードに変換されるため,JavaScriptのライブラリなどを利用することができる.

静的な型付け

TypeScriptは変数や関数の型を明示的に指定する.これにより,コンパイラが型エラーをチェックしてくれるため,実行時のエラーを減らすことができる.

JavaScriptの場合(動的型付け)

var x = 1;
x = 'Hello'; 

変数宣言でxに数字を入れて,その後に文字列を入れてもエラーは起きない.

TypeScriptの場合(静的型付け)

var x: number = 1;
x = 'Hello';

変数宣言でnumber型としてxに数字を入れているため,型の違う文字列を入れるとコンパイルエラーが発生する.

型の種類

number 数値型
string 文字列型
boolean 真偽値型
null null型
undefined undefined型
any すべての型を許容する
type[] 配列型,typeには基本データ型が入る(number[],string[])
Array 配列型,typeには基本データ型が入る(Array,Array)

type文を用いて,型に別名をつけることができる.

型の書き方

変数

var name: string = '太郎';
var age: number = 20;
var other: any = 'その他';
var favorites: Array<string> = ['soccer', 'movie', 'eating'];

変数名の横に:typeで型を指定する.

関数

function example(name: string): void{

}
//アロー関数の場合
const example = (name: string, age: number): number => {
	return 0;
}

関数の引数の横に戻り値の型を指定する.戻り値がない場合はvoidを指定する.

オブジェクト

//オブジェクト型の宣言
interface Person{
	name: string;
	age: number;
	isStudent: boolean;
	gender?: string;
}

//オブジェクトの作成
const person: Person = {
	name: 'Alice',
	age: 30,
	isStudent: false
	//genderがなくてもエラーにならない
};

オブジェクトの型を定義する場合は,interfaceを使用して,プロパティの型や構造をしてする.
プロパティ名に[?]をつけると,オプション化することができ,プロパティが存在しないことを許可する.

タプル

const person: [string, number, boolean] = ['太郎', 20, true];

console.log(person[0]); // => 「太郎」を出力

型エイリアス

type name = string;
const username: name = '太郎'; // これと同じ→ const username: string = '太郎';

typeを利用して既存の型に別名をつけることができる.これにより,複雑な型を簡潔に表現することや再利用性を高めることができる.

ユニオン型

const union: string | number = 10; 

union = 'taro'; // エラーは発生しない
union = true; // エラー発生

|を利用することで,変数などに複数の型を指定できる.指定したものならエラーは発生しない.

インターセクション型

type A = { x: number };
type B = { y: number };
type C = A & B; // C型は { x: number, y: number } という構造を持つ

&を利用して,複数の型を結合して新しい型を作ることができる.

enum型[列挙型]

enum SIZE {
	Small, // 0
	Medium,// 1
	Large  // 2
}

const size: SIZE = SIZE.Medium;
console.log(size); // 1

特定の一部連の定数に対して,意味のある名前をつけるための型.これに処理,enumで定義されていない文字列を代入してしまう可能性がなくなる.定義されたものにはインデックスが割り当てられている.
(ちなみにenum型は非推奨らしい.)

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