点数
70点
感想
全体的にわかりづらかった。
フロントエンド開発でJavaScriptに静的型付けを追加したいだけであれば、本書の知識はそこまで必要はないと思う。
TypeScriptを使って本格的な開発をする場合は必要になってくると思う。
環境構築
手順
- mkdir sample
 - cd sample
 - npm init
 - npm install --save-dev typescript tslint @types/node
 - touch tsconfig.json
 - npx tslint --init
 
tsconfig.json
{
  "compilerOptions": {
    "lib": ["es2015"],
    "module": "commonjs",
    "outDir": "dist",
    "sourceMap": true,
    "strict": true,
    "target": "es2015"
  },
  "include": [
    "src"
  ]
}tslint.json
{
    "defaultSeverity": "error",
    "extends": [
        "tslint:recommended"
    ],
    "jsRules": {},
    "rules": {
        "semikolon": false,
        "trailing-comma": false
    },
    "rulesDirectory": []
}Hello World
手順
- mkdir src
 - touch src/index.ts
 - npx tsc
 - node ./dist/index.js
コンパイルするとdistディレクトリにjsファイルが生成されるのでnodeコマンドで実行する。
なお、ts-nodeライブラリをインストールするとコンパイルと実行を1つのコマンドで行うことができる。 
console.log("Hello World")型について
- できる限り型推論を使い、必要な場合だけアノテーションでの型指定を行うようにするべき。
 - 関数は引数のみアノテートし、戻り値は型推論を使うべき。
 - tsconfigでnoImplicitAny: trueにすると型推論でanyとなるものはエラーとなる。
noImplicitAnyはstrictに含まれるので、strictをtrueにするとnoImplicitAnyもtrueになる。 
フロントエンド
フロントエンドでTypeScriptを使う場合は、tsconfig.jsonにdomを追加する。
これにより、型チェックの際にlib.dom.d.tsの型宣言が含まれるようになる。
"compilerOptions": {
  "lib": ["es2015", "dom"],
  // 以下省略例えば、以下にようなコードで型推論が行われる。const url = window.location.href // stringconst input = document.createElement("input") // HTMLInputElement
nodeコマンドで実行してもDOM APIは存在しないためエラーとなる。
./dist/index.jsを読み込む./dist/index.htmlを用意してブラウザで表示すると確認することができる。
  
  
  
  

コメント