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を基本からまとめてみた【3】【TypeScript入門】

Last updated at Posted at 2022-05-10

TypeScriptとは

  • JavaScriptにコンパイルされる静的型システムがついたJavaScriptの上位集合
  • JavaScriptの仕様をベースに拡張したプログラミング言語
    ⇨ 新しい機能と利便性をJavaScriptに追加

大きな欠点

JavaScriptの環境で実行できない。
ブラウザでTypeScriptを直接実行できない。
  • JavaScriptにコンパイルされる静的型システム
    ⇨ TypeScriptは型検査に通るように書く必要がある
    ⇨ 新しい機能をJavaScriptコードに変換する + 潜在的なエラーのチェック(型チェック)

※ TypeScriptで書いたものをJavaScriptに変換するツール

TypeScript

image.png

なぜTypeScriptか?

  • ドキュメントとしての側面を利用するため

⇨ 半自動的に関数の使い方がわかる

コードを今まで書いていた人 → 本当にそのコードが合っているのか定かではないが
『TypeScript』はエラーが出るため信頼できるドキュメントになる

sample.ts
function add(a:number, b:number):number {
  return a + b;
}
  • Linterとしての側面を利用するため

⇨ Linterとは、実行する前にそのコードが正しいかどうかを検証するツール

膨大な量のコードの場合、エラーに気づきにくいが『TypeScript』はコンパイラーが自動的にコードを読んでエラーを見つけてくれる

  • ES5へのコンパイラとしての側面を利用するため

⇨ ES6でコードを書いてもブラウザが追いつかない

ES5までは主要なブラウザが対応して、最新の書き方で書いてもダウングレードできる

TypeScriptをインストール

$ npm install -g typescript

TypeScriptで書いたコードをJavaScriptに変換する

$ mkdir <プロジェクト名> //フォルダを作成
$ touch <プロジェクト名> //ファイルを作成

$ tsc <プロジェクト名>//コンパイルすると同じ名前のJavaScriptのファイルができる
$ node <プロジェクト名> //実行する

TypeScriptの概要

TypeScriptが追加しているもの

1. 型 

① 型を利用することにより、無駄なエラーや予想外の問題を防げる
② Vscodeのようなモダンな開発環境であれば型があることにより非常に便利なコードの自動保管を利用できる
③ コンパイルすることなくソースコード上に直接エラーを表示してくれる

2. 新しい世代のJavaScriptの機能

① 新しいJavaScriptの機能をTypeScriptで利用できる
② Babelのようなもの

※ Babelとは

新しいバージョンのJavaScript(ES6以降)を古いバージョンでも動くように
変換(コンパイル)するツールのこと

3. JavaScriptに存在しない新機能(インターフェイスやジェネリクス等)
4. メタプログラミングの機能(デコレータ等)
5. 豊富なオプション(高いカスタマイズ性)

参考サイト

超TypeScript入門完全パック- TypeScriptでアプリを作りたい方必見!
TypeScript概要

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?