TypeScriptはじめてみた 〜環境構築〜
TypeScriptとは?
ここは飛ばします.記事だけ載せておきます.
English Articles
日本語記事
環境構築のはじまり〜
PC環境
- MacBook Pro (2020)
- macOS Big Sur version 11.6
- Editor: VSCode
コンパイラの導入
- Node.jsのインストール
Node.jsから推奨版をインストールします.(2021/10/19では,"14.18.1LTS" です.)
- TypeScriptのコンパイラのインストール
terminalを開き,$ npm install -g ts-node
を実行後,以下のどちらかのコマンドを実行します.(OSに依存)
$ npm install -g ts-node
# 実行コマンド(OSによって選ぶ)
$ npm install -g typescript
$ sudo npm install -g typescript
# コマンドでインストール実行後に,以下を実行するとバージョンがわかる
$ tsc -v
>> Version 4.4.4
"Hello, World!"を表示してみる
簡単なプログラムの実行
terminalでファイルの任意の場所で,以下のコマンドを実行
$ mkdir helloworld
$ cd helloworld
$ touch helloworld.ts
$ code .
※code .
コマンドが効かない場合は,【Qiita】code.コマンドがcommand not found となるを参照.
※teminalでのこの操作がわからない場合は,【Qiita】Macのターミナルコマンド一覧(基本編)を参照.
VSCodeの起動後,helloworld.ts
に以下のコードを書く
const message:string = 'Hello, World!';
console.log(message);
VSCodeの設定
- 拡張機能をインストール
- code runner
- typescript
などなど
このまま,VSCode上か普通のterminalを開いて以下を実行する.
$ tsc hellowolrd.ts
$ node helloworld.js
簡単な環境構築の終了!
ガチの環境構築していく!
ここまで行ったことは,導入でまずはterminalに移すところまでで特にこれができても意味がない.
ということで,ガチの環境構築(≒本格的に実用的な環境構築を行なっていく〜〜〜)
新たにプロジェクトを立てる
先述のように,新たなプロジェクトを任意の場所に立てる.この時についでに必要なツールのインストールを行います.
$ mkdir env_build
$ cd env_build
$ npm init --y
$ npm install typescript ts-loader webpack webpack-cli webpack-dev-server --save-dev
$ npm install express mongoose passport jade connect-chain http-errors mocha
$ npm install assert power-assert sinon superagent minimist keypress --save-dev
$ npm install lodash underscore.string chalk async http-server nodemon fixpack --save-dev
ここで,ある程度の簡単な設定だけいじっていきます.
package.json
の中に,npm build
,npm start
が使えるように,scriptsの中に書き込みます.++がついている2行を付け足してください.(※その前の行にコンマ忘れないでね!)
{
"name": "env_build",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
++ "build": "webpack --mode=development",
++ "start": "webpack serve --mode=development"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
省略
},
"dependencies": {
省略
}
}
次に,webpackの設定を行っていきます.
まずは,terminalを開いて,
env_build
├── node_modules
:
│ ├── @discoveryjs
└── tsconfig.json
# env_build/.
$ touch webpack.config.js
ここにwebpack.config.js
を作っていきます.
webpack.config.jsの中身は,以下の通りに記述してもらえば良いかと思います.
const path = require('path');
module.exports = {
entry: {bundle: './src/app.ts'},
output: {
path: path.join(__dirname,'main'),
filename: '[name].js'
},
resolve: {extensions: ['.ts','.js']},
devServer: {
static: {directory: path.join(__dirname, "main")}
},
module: {
rules: [{test:/\.ts$/,loader:'ts-loader'}]
}
}
最後の設定は,TypeScriptの設定です.terminalで以下を実行するとtsconfig.json
ができます.
tsc --init
{
"compilerOptions": {
/* Language and Environment */
"target": "es5",
/* Modules */
"module": "commonjs",
/* Interop Constraints */
"esModuleInterop": true,
/* Type Checking */
"strict": true,
/* Completeness */
"skipLibCheck": true
}
}
ここまでが設定の中身です.
実際にプログラムしてみる
まずは,そのメインとなるプログラムの2つのフォルダを作る必要があります.
$ mkdir main
$ cd main
$ touch index.html
$ cd ..
$ mkdir src
$ cd src
$ touch app.ts
$ touch item.ts
とでもしておきましょう.別名でも大丈夫です.
さて,ここでindex.html
, app.ts
, item.ts
の中身をいかにざっと書いておきます.
<!DOCTYPE html>
<html lang='ja'>
<head>
<meta charset="utf-8">
<title>Hello typescript</title>
</head>
<body>
<div id="output"></div>
<script src="bundle.js"></script>
</body>
</html>
import {Item} from './item';
var elem = document.getElementById('output');
var profile = new Item('じん',1);
profile.say(elem);
export class Item {
constructor(private name:string, private num:number){}
public say(elem : HTMLElement | null) : void {
if(elem){
elem.innerHTML = 'こんにちは! ' + this.name + 'さん' + 'typescriptで簡単な実装ができましたね!' + 'これも' + this.num + 'つの成果物です!';
}
}
}
ここまで書いたら,
npm start
を押して,http://localhost:8080/にアクセスしてみてください!簡単が文章が出てきます!
ちなみに,tsの中身を少し変えて,保存(command + s)を押すと,自動的に変更されているので,数値を変えてみるなり,自分の名前にしてみるなりして,確認してください(webpackの機能です)
Discussion