[タイプスクリプト]1The Basics


1. The Basics


Static type-checking


JavaScript:ダイナミックタイプ
  • javascriptは、実行時に発生したエラーを事前に理解していません.
  • タイプスクリプト:static type-check(静的タイプチェック)
  • タイプのスクリプトは、プログラムが実行される前にタイプが正しいかどうかを確認します.
  • 静的タイプシステムは、プログラムの実行時に、値の形状と動作を説明します.
  • タイプのスクリプトは、このプログラムを実行するときにどのようなエラーが発生するかを説明するためにこの情報を使用します.

  • Non-exception Failures


    JavaScript
  • JavaScriptは、実行時にエラーを投げ出すことができます.
    たとえば、呼び出せない文字列を呼び出すとエラーが放出されます.
  • 運転時にもエラーが出ない場合があります.
    -たとえば、オブジェクトに存在しないプログラムにアクセスすると、エラーを出さずに定義されていないプログラムが返されます.
  • タイプスクリプト
  • 静的タイプシステムでは、JavaScriptでは有効ですが、すぐにエラーのコードを投げ出すことはなく、エラーとも言います.
  • エラー、呼び出されていない関数は、簡単な論理エラーでもエラーが投げ出されます.
  • Types for Tooling


    タイプスクリプトは、コードの最初の作成からエラーを回避するのに役立ちます.
  • タイプのスクリプトはproperty推奨を提供します.
  • コードを記述する過程で、エラー情報を表示したり、コードを自動的に完了したりすることもできます.
  • タイプのスクリプトをサポートする編集プログラムは、エラーの自動修正、エラーの再設計、変数定義への移動、変数のすべての参照の検索などの機能を提供します.
  • tsc、タイプスクリプトコンパイラ

  • tscはタイプスクリプトファイルをjavascriptファイルにコンパイルします.
  • tscは、コンパイル中にエラーをコマンドラインとして表示します.
  • // This is an industrial-grade general-purpose greeter function:
    function greet(person, date) {
      console.log(`Hello ${person}, today is ${date}!`);
    }
    
    greet("Brendan");

    Explicit Types


    明示的なタイプ
  • タイプを明確に記入できます.
  • function greet(person: string, date: Date) {
      console.log(`Hello ${person}, today is ${date.toDateString()}!`);
    }
    類型推論
    明確なタイプがない場合、タイプスクリプトはタイプを推定します.
  • タイプのスクリプトが同じタイプを推定する場合は、タイプを指定しないほうがいいです.

  • Erased Types


  • hello.ts
    function greet(person: string, date: Date) {
      console.log(`Hello ${person}, today is ${date.toDateString()}!`);
    }
    
    greet("Maddison", new Date());

  • hello.js
    function greet(person, date) {
        console.log("Hello " + person + ", today is " + date.toDateString() + "!");
    }
    greet("Maddison", new Date());
    
  • hello.tsをコンパイルすると、tsファイルとjsファイルに2つの異なる点が生成されます.
    1.personパラメータとdateパラメータのタイプタグが消えます.
    2.template stringは、+によって付加された純粋な文字列に変換される.
    タイプタグが消えたのは、ブラウザと実行時にタイプスクリプトを実行できないためです.
    したがって、タイプスクリプトは、まずコンパイラによって実行され、タイプスクリプト固有のコードを除去または変換する必要があります.

    Downleveling


    上記の例では、コンパイラはなぜtemplate stringを+付きstringに変換したのですか?
    Downleveling
    template stringはECMAScript 2015(ES 6)の文法です.
    タイプスクリプトは、ECMAScriptの高バージョンからサブバージョンにコードを書き換えることができます.これをdownlevelingといいます.
    デフォルトタイプのスクリプトのターゲットはES 3です.ターゲットをES 6に変更した場合、template stringは変換されません.
  • es 6をターゲットにコンパイルするコマンド
  • tsc --target es6 hello.ts
  • hello.js
  • function greet(person, date) {
        console.log(`Hello ${person}, today is ${date.toDateString()}!`);
    }
    greet("Maddison", new Date());