TypeScriptは読むことはあっても、真面目に書く機会がなかったので、 少し練習してみました。そのためにイチから始めるための環境準備作業をメモしておきます。
導入
TypeScriptをコンパイルしてJSを吐くための typescript
をインストールします。
$ npm init $ npm install typescript
サンプルファイル作成
function hello(name: string): void { console.log('hello ' + name + " !") } let yourname: string = "Yamada"; hello(yourname)
JSにコンパイル
$ ./node_modules/.bin/tsc sample.ts -> sample.js が出力される $ node sample.js hello yamada !
コンパイルめんどくさい時は
ts-nodeを使用すると、コンパイル不要でnodeに実行させられます。
$ npm install ts-node $ ./node_modules/.bin/ts-node sample.ts helloyamada !
FirebaseのCloud Functionでデプロイしてみる
nodeでただ単に動かすだけだと面白くないので、 Cloud Functionでも動かしてみます。
と言っても以下のサンプルに追記するだけです。 github.com
typescript-getting-started を cloneして、
'use strict'; import * as functions from 'firebase-functions' export const helloWorld = functions.https.onRequest((request, response) => { function hello(name: string): string { return 'hello ' + name + ' !' } let yourname: string = "Yamada"; response.send(hello(yourname)); });
これを適当なfirebaseのプロジェクトで以下のように
$ firebase init functions $ npm run deploy
してやればCloud Function上でも動きました。
Serverlessを使用してLambdaでも動かしてみる
とりあえず動かしてみるだけばっかりですが、ついでにLambdaでもやってみます。
serverless フレームワークの設定が済んでいれば、テンプレートからすぐに実行できるとのこと。
$ sls create -t aws-nodejs-typescript -p ts-test $ cd ts-test $ cat handler.ts ... ここに処理を記述するtsファイルが生成されます $ npm install $ sls deploy $ sls invole -L -f hello { "statusCode": 200, "body": "{\n \"message\": \"Go Serverless Webpack (Typescript) v1.0! Your function executed successfully!\",\n \"input\": {}\n}" }
...という感じに、さくっと実行まで行けました(すでにserverlessフレームワークを使用していたので)。
準備完了
Nuxt.jsとかで動いているJSをいきなりTypeScriptにすると負荷がかかりそうなので、 まずはJSで動いているFunction系をTypeScriptに更新したり新規で作ったりしながら、慣れていこうかなと思います。