LoginSignup
5
2

More than 3 years have passed since last update.

C/Java/C#(SI系)なエンジニアに贈るTypeScript事始め その1(準備から動作確認まで)

Posted at

これは何?

Javaなエンジニアが必要に駆られてTypeScriptを学習する記録です。
Javaアプリケーションの開発に長年かかわってきており、以下のような
志向に染まっている、ダークサイドに落ちかけているエンジニアです。
(Javaがダークサイドと言っている訳ではありません笑 念の為)

  • 志向
    • 大規模開発は静的型付けがないとねぇ、、
    • スクリプト言語で大きなWebが本当に書けるんすかね、、
    • コンパイルないから昔大規模なJavaScript書いてて死ぬかと思った、、
    • そもそも性能とか実績とかから見るとごにょごにょ、、

この記事を書こうと思ったモチベーション

ワケあってちょろっとTypeScriptを触ってみたら思いの外、精神的に
安全な気持ちになれるじゃん!これはJavaな人(静的型付けでコンパイルに
守られていて、スクリプト言語に苦手意識のある人たち。いわゆる中年)でも
ちょっとやれば全然イケる、、と思い、筆をとることにしました。

大規模なSI開発や受託開発の現場ではまだまだJavaやC#、PHPなどの古き良き
言語が幅を利かせており、エッジの立った技術の導入に二の足を踏んでいる人たちも
多いと思います。古い言語は悪い言語、というつもりは全くありませんが、昨今の
爆発的な開発言語の増加、技術の分岐を見据えて、少しづつ、いろんなところで得た
学びや発見をお伝えしたいと思っています。

Let's get started!

今回はTypeScriptでサーバを書きながらTypeScriptのいいところを取り上げる、
ということを目標にします。したがって、必然的にサーバはNode.jsを使います初心者編なので、
バージョンとかの細かい話は基本的には端折ります。なお、これからの作業では一部Shellを使います。
みなさまお好みのShell環境を用意していただければと思います笑。筆者の環境は以下の通りです。

  • OS : macOS Mojave(10.14.n)
  • Editor : VSCode

TypeScriptはMSが開発しているため、特段のこだわりがなければVSCodeを使うのを
お勧めします。本当に何も気にせずに楽にコードが書けます。私もVSCode+Emacs key binding
な環境で快適に作業ができています。

Node.js導入

省略笑

TypeScript導入

globalに導入するのは抵抗があるので、特定プロジェクトに導入する、という形で
進めていきます。

#Projectの初期化
> npm config set init.author.name <name>
> npm config set init.author.email <email>
> npm init -y

これでpackage.jsonが出力されます。package.jsonってのはC,Javaな人向けにいうと
makefile, ant.xml, maven.xml, build.gradleみたいなものです。いわゆる
依存性の解決とか、プロジェクト構成の管理とか、そういうのをやってくれる人です。

#TypeScriptをProjectに導入
npm install --save-dev typescript
npm install --save @types/node

これでProjectでTypeScriptを利用する準備が整いました!おめでとうございます。
npm installってのは他のモジュールを取り寄せるコマンドです。--savaオプションを
つけると実行時も必要、--save-devだと開発時のみ必要、という意味になります。
これらのオプションをつけることによりpackage.jsonに追記してくれます。こんな感じ。

package.json
{
  "name": "node_type",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "Keisuke Kuzukawa",
  "license": "ISC",
  "devDependencies": {
    "typescript": "^3.5.3"
  },
  "dependencies": {
    "@types/node": "^12.7.2"
  }
}

Hello! TypeScript

まず必要となる環境を設定します。コード格納先のディレクトリを作って、
TypeScriptコンパイルに最低限必要となる設定ファイル(tsconfig.json)を作ります。

#ソースコードは./src以下に格納することにします。
> mkdir src
#TypeScriptのコンパイル設定ファイルを作成します。
> cat << EOF > ./tsconfig.json
 {
  "compilerOptions": {
    "module": "commonjs",
    "target": "es2017",
    "sourceMap": true,
    "types" : ["node"]
  },
  "exclude": [
    "node_modules"
  ]
}
EOF

次に早速コードを書きます。コードは./src/以下に格納します。
ただのJavaScriptとなんら変わりませんが・・いいんです!今はまずコンパイルして
Node上でTypeScriptが動くようになるまでを目指します。

src/app.ts
console.log("Hello! TypeScript!!");

で、コンパイルしましょう。さっきnpm installしたtypescriptのコンパイルコマンドを使います。
(厳密にはTypeScriptからJavaScriptを生成するのはトランスパイルと呼ぶらしいですが、
ここではわかりやすくコンパイルで統一します)

#tscコマンドによりコンパイル実施
> node_modules/.bin/tsc

これだけです。早速実行してみましょう。

# nodeコマンドでアプリを実行します。app.jsを実行している点にご留意
> node src/app.js
Hello! TypeScript!!

おぉ!!!動きましたねー!!!たった1行のコードでも新しい環境でコードが動くと気分がいいですね。

まとめ

私のような中年プログラマでもなんなく進むことができました。みなさまも先入観を持たずに一度、
触ってみれば、楽しめると思います!ぜひ、一緒に遊びましょう!!

to be continued...

5
2
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
5
2