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-08

はじめに

Udemyの【世界で7万人が受講】Understanding TypeScript 日本語版を参考にTypeScriptを学習したので、プログラミングノート(カンペ用ノート)をします。

設定

インストール

nodejs インストール
https://nodejs.org/ja/download/

TypeScriptインストール
https://www.typescriptlang.org

グローバルなツールとしてインストール
sudo npm install -g typescript

開発環境設定

package.jsonをインストール(依存関係などを定義する)
npm init

開発用ツールとしてサーバを更新するツールをインストール
npm install --save-dev lite-server

package.jsonのscriptsに以下を追加して起動できるようにする
"start":"lite-server"

npm start で起動。

TypeScryptのコンパイル

個別にコンパイル

tsc app.ts
これでJavaScriptファイルが作成される。
lite-serverによりJavaScriptの反映は即座にlocalhostに反映される

自動でコンパイル

tsc app.ts -w //watchモード。 保存すればすぐにコンパイル。

プロジェクト内のTypeScriptファイルをコンパイル

tsc --init //ルートフォルダで実行。プロジェクトがTypeScriptであることを伝える。tsconfig.jsonが作成される。
tsc // プロジェクトのうちtscファイルを全てコンパイルする。

tsconfig.jsonでコンパイルに関する様々な設定が可能。

コアな型

number:1,5.3,-10
string: ’Hi’ , ”Hi” , `Hi`
boolean: true, false
object: {age; 30}

その他の型

Array型

const person = {
    name : 'yota',
    age : 30,
    hobbies:['Sports','Cooking'] // Array型
};

Tuple型

要素の数が決まった配列

const person: {
    name : string;
    age : number;
    hobbies: string[];
    role: [number, string];
}={
    name : 'yota',
    age : 30,
    hobbies:['Sports','Cooking'],
    role: [2, 'author']
};

Enum

enum { NEW, OLD } // 列挙型

union型(複数の型をマージする)

let numberOrUndefined: number | undefined;

Alias型(Union型を再利用)

type Combinable = number | string;

リテラル型(コアな型の中でさらに詳細に定義)

type ConversionDescriptor = 'as-number' | 'as-text';

function型

let combineValues: (a: number, b: number) => number;

戻り値を特に設定しない場合はvoidとなる。
何かを返そうとするとundefinedとなる。

function sayHi(): void {
  // ...
}

unknown型、 any型

let userInput: unknown;
// let UserInput : any // any型は型チェックをしないため、if文がなくてもエラーにならない。
let userName: string;

userInput = 5;
userInput = "Max";
// if (typeof userInput === "string") {  //any型は型チェックをしないが、unknown型は型チェックが必要なのでこれがないとエラーになる
userName = userInput;
// }

never型

戻り値を絶対に返さないことを明示的にする。TypeScriptの型推論ではvoid型になるが、neverを使うことで明示的にできる。

function generateError(message: string, code: number): never {
  throw { message: message, errorCode: code };
}

const result = generateError("エラーが発生しました", 500);
console.log(result);

構文

forで一個ずつ取り出し

for (const hobby of person.hobbies){
    console.log(hobby)
}

関数

callback関数

unction addAndHandle(n1: number, n2: number, cb: (num: number) => void) {
  const result = n1 + n2;
  cb(result);
}

// callback関数resultをconsoleに出力
addAndHandle(10, 20, (result) => {
  console.log(result);
});
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?