less than 1 minute read

学んだこと

nolmplicitAny

  • 暗黙的な Any 型を許容するかどうかの設定

strictNullChecks

  • null を含むかどうかの設定
    • 通常型宣言を行う際、null も含まれている。
    • false にすると、null が入らなくなる。
// trueだとOK
// falseだとNGになる
let val: string = null

strictBindCallApply

  • bind,call,apply の型チェックを厳しくする設定
  • call
    • 関数を任意の this を指定して即座に呼び出すためのメソッド
function echo(message: string): string | null {
  return message
}
echo.call()

きれいな Code を書くために必要な設定

  • noUnusedLocals
    • 宣言したローカル変数が使われていない場合、コンパイル時エラーを出す設定
    • グローバル変数は管轄外
  • unUnusedParameter
    • 宣言した関数の引数が使われていない場合、コンパイル時エラーを出す設定
  • unImplicitReturn
    • 暗黙的な return を許容しない設定
    • return を明示的に行わなければいけない

forceConsistentCasingInFileNames

  • ファイルの大文字小文字を区別する設定

isolatedModules

  • TS ファイルを独立したファイルとみなし、解釈できないコードがあった場合エラーを出す設定
  • tsc 以外の方法で変換すると一部コードが正しく解釈されない可能性がある

skipLibCheck

  • 他のライブラリの型チェックを検査するかどうかの設定

extends

  • 別の設定ファイルを指定することができる
    • 指定したファイルの設定を引き継ぐ事ができる

Projects

  • TS のプロジェクトを複数管理するときに使われる

クラスの書き方

  • 書き方自体は他の C++や C#での書き方とにている
  • コンストラクタ関数はクラス名ではなく Constructor と書く
// 宣言
class Person{
  // メンバ変数
  name: string

  // 初期化関数
  constructor(initName: string){
    // thisはクラスのオブジェクト
    this.name = initName
  }
}

// インスタンス作成
const quill = new Person("Quill");