タイプスクリプトが人気があるのはなぜですか?(feat.タイプとエラー)


🎉 なぜタイプスクリプトを書くのかを見て、JSの間違った物語に移りました。


タイプライターの文法を学ぶ前に、JavaScriptのSUPER SETだそうですが、いったい何が良くなって、人々に愛されているのでしょうか.調べてみると、まず目につくのは、ランタイムエラーを避けるために開発段階でエラーを処理できること...少しも感じない

ランタイムエラー?どうして起こらないの?👀


プログラミングの過程で、エラーは私のプロジェクトの進行を妨げていると思って、try-catch文で処理して、もっと考えたことがないようです.

  • ランタイムとは
    簡単に言えば、プログラムが実行される環境です.
    JSを処理する人にとって、ランタイム環境はブラウザまたはノードであってもよい.
    JavaScriptは、実行時にタイプを決定する動的タイプ言語です.

  • なぜランタイムエラーが致命的なのですか?
    一番悪いのは番組が止まるからだと思います.
    開発中に、プログラムが死なないように、予期されたエラー・ケースをtry-catch文に符号化した可能性がありますが、予想外の状況でエラーが発生すると、プログラムが停止し、ユーザーは最悪のユーザー体験を体験する可能性があります.
    Case 1)宣言されていない関数を呼び出します.
      JavaScript
      case1.
    
      const banana = () => 'banana';
      apple();
    上記のコードではappleは宣言されていない関数なので呼び出せません.ただし、JavaScriptを使用してコードを作成および保存しても、エラーは発生しません.(eslintだと確実に掴める…)

    ただし、ブラウザで実行すると、コンソールウィンドウでエラーメッセージを表示できます.(ReferenceError)
    Case 2)無効な関数を呼び出します.
      JavaScript
      case2.
    
      window.aler();  // window.alert();
    2つ目は、alertがalerに符号化されて実行される場合ですか?
    △李京宇はリントの優先順位に誤りはなかった.

    同様に、コンソールウィンドウでエラーを表示できます.(TypeError)
  • では、タイプスクリプトの違いは何でしょうか。👀


    タイプスクリプトは静的タイプ言語です!!
    したがって、JavaScriptとは異なり、タイプスクリプトはコンパイル環境でエラーが発生します.💥

    (ref: https://www.c-sharpcorner.com/article/getting-started-with-typescript-2-0/ )

  • コンパイル環境?コンパイラ.
    ウィキペディアは、コンパイラを「特定のプログラミング言語で作成されたドキュメントを他のプログラミング言語に移行するプログラム」と解釈しています.
    コンパイルはソースコードをマシン言語に変換するプロセスであり、タイプスクリプトのコンパイラはタイプスクリプトコードをJavaScriptコードに変換するので、変換ファイルと呼ぶことができます.

  • タイプスクリプトによってコンパイルエラーが発生します.
    タイプスクリプトはコンパイル中にエラーをキャプチャするため、開発フェーズで以前の実行時に発生したエラーを処理できます.
    Typescript
     case1.
    
     const banana = () => 'banana';
     apple(); // 에러 발생 💥
    (JavaScriptを使用している場合、ランタイム環境で実行するまでエラーをチェックできません…)
    TypeScript
    case2.
    
    window.aler();  // 에러 발생 💥

    (alertを親切に書きたいですか?教えてくださいハハ)
  • 結論は?👀


    まとめてみると、「javascriptはダイナミックタイプ言語なので、実行中にエラーが発生したり、開発段階で意識していないエラーや予期せぬ状況が発生したりすると、ユーザーが不便を感じたり、プログラムが停止したりする可能性があります.
    ただし、タイプスクリプトは静的タイピング言語であるため、コンパイル中にエラーが発生します.「これにより、開発フェーズでエラーを認識および処理できます.」そう言ってもいいです.
    ✌️✌️

    Reference

  • https://academy.dream-coding.com/courses/typescript
  • https://poiemaweb.com/typescript-introduction