序文
TSのみで、時間の前にIONICを行い、シーンを掘るても過言でありませんので、学習過程における活字体は、私も抵抗の多くに遭遇し、今、このシリーズは、レコードが同時に、自分自身の学習を収穫していますチュートリアルのこのシリーズを所有したい確かに学生が活字体を勉強したいのに役立ちます、私はこれを明確に私のものに言語とコードを簡潔にしてみてください。
記事の誤りや記載漏れがある場合、私はあなたが私と一緒にクマを期待し、多くのことを指摘し、あなたは電子メールを介して私に連絡することができます:[email protected]
活字体とは何ですか
活字体についてそこに非常に興味深いの引数は、JavaScript拡張機能+型システム上にある必要があり、正確な活字体であることを、ええと、活字体=型付き+ JavaScriptを言って、であるので、この式が入力する必要があります+ JavaScriptの+は、拡張します
公式文書はまた、その一つのことを示しており、それは活字体は私たちが活字体に、JavaScriptからシームレスに切り替えるようにするためには、JavaScriptのスーパーセットであり、Microsoftはそれだけでは、JavaScriptに活字体コンパイラの活字体を提供し、実行時間は含まれません。ランタイムはJavaScriptを実行する時間である、typescriptですが、新しいJavaScriptコードの実装であるということができます。
活字体とJavaScriptタイプ
私たちは、システムのJavaScriptの基本的な種類を見てみましょう:ブール後、ヌル、未定義、文字列、数値、およびES6、新しいタイプのシンボル。
活字体どのようなタイプのそれ?ブール、ヌル、未定義、文字列、数字、記号+活字体に拡張タイプ:私たちは、活字体の基本的な種類を見てみましょう。
基本的な根本的なタイプでは、JavaScript +自己拡張可能型システムのトップ活字体の一種です。
JavaScriptの型システムの拡張タイプの活字体は、強く型付けされた言語を描くがボイド、決して、ジェネリック医薬品、などなど高次タイプ。
表現の活字体の形
活字体とJavaScriptの種類の明確な差別は、我々はそれを書き換えるために活字体はJavaScriptになる方法を見て?
まず、JavaScriptコードの一部にその:
STR = 'ハローJavaScriptは'せ ましょうNUM = 10 LETのARR = [1、2、3] CONST htmlStr = '$ {STR} _ $ {NUM} _ $ {arr.join()} ` document.querySelectorAll(」。アプリ')[0] .innerHTML = STR
上記のコード部分については、活字体の環境で実行している場合は、だけでなく、活字体は、このようなアプローチと互換性のJavaScriptのスーパーセットであるため、適切に実行することができます。
だから、上記のコードに対応する活字体はどのようにそれはありますか?ここでは、コードの記述を使用します。
せSTR:文字列= 'ハローのJavaScript' せNUM:番号= 10 LET ARR [] = [1、2、3] //配列<番号> CONST htmlStr = '$ {STR} _ $ {NUM} _ $ {ARR .join()} ` document.querySelectorAll( 'アプリ')[0] .innerHTML = STR
このように、活字体は次のように彼のフォーマットのより標準化された変数の型宣言は次のとおりです。
let変数:タイプ=値
活字体データ型
彼は、活字体データ型は、我々が実証するコードの一部を使用することができ、言いました:
//プリミティブ型 のlet BOOL:=ブールtrueに NUMせ:番号= 13であり、 LETのSTR:文字列= 'ABC' の//配列 ARR1のLET:番号[] = [1、2 ,. 3]は LETのARR2は:配列<番号> = [ 。1、2、。3] せARR3:配列<数値|文字列> = [1、2 ''] //タプルは タプルせ:[数、文字列] = [0、 '2'] // 特別なアレイは、アレイを定義しますタプルタイプ及び数 tuple.push(2)// [0、 '2'、2] //タプル[2] //アクセスが許可され境界 //関数を 追加してみましょう=(X:数、 Y:数) :番号=> X + Y LET FUNC:(X:ナンバー、Y:番号)=>番号 FUNC =(A、B)=> A + B //オブジェクトが OBJを聞かせ:オブジェクトは、= {X: 1、Y:2 } // // 100 =間違っobj.x OBJ2ましょう:{X:ナンバー、Y:番号= {X} :. 1、Y:2} OBJ2。X = 100 //無効 = LET()=> {} noreturn 無効未定義=== 0 //任意の LETのXは任意//割り当てることが //になることはありません値を返すことはありません LETエラー=()=> { スロー新しい新しいError() } //列挙 列挙役割{//数値や文字列宣言 //デフォルトの順序ゼロ以下+1し、教師 //、学生。1 }
活字体の型推論
もちろん、我々はあなたが純粋なJavaScriptコードを記述するためにタイプを追加するのを忘れた場合、コードを書くの過程にある、そして私たちは、ほとんどの種類を推測するのに役立ちます活字体で推論を入力します。
例えば、私たちの最初のJavaScriptコード、以下の説明を行うためのコードに従い、型推論:
STR =レッツこんにちはJavaScriptを「 STR = 100割付操作は、タイプ文字列str推測されているため、この割り当ては活字与えられます//エラー のlet NUM = 10 この時点では、NUM =「いくつかの文字列」//エラーが推測されていNUM数タイプは、文字列型は、それに割り当てません LETのARR = [する。1、2、。3] 真のARR = //エラー、型が配列型推論アレイは<番号>、割り当てることができないBoolen ARR = [「1' 、」 2 '3'「] //エラー、 配列として型推論<番号>、アレイ<ストリング>型として割り当てることができない CONST htmlStr = '$ {STR} `_ $ {NUM} _ $ {arr.join()} document.querySelectorAll( 'アプリ')[ 0] .innerHTML = STR
なぜ入力する必要があり
上記のコードで知られているかもしれない、活字体判断のコードより厳格なタイプは、その後、我々は確かにそれを行う理由を、お聞きしたいですか?
実際には、最大の利点は、そうするためには、コードの単純なドキュメント、コードを作成し、当社の業務を標準化し、大規模なアプリケーションや筆記テストケースの開発のための大きな助けとされている不要な境界値問題を回避することができます。
活字体だけでなく、あなたは、単にコードを書くためにはJavaScriptを使用している場合、乗馬のように、私たちの自由なコードを制限するものではありませんでした馬のない手綱が存在しない場合、我々は危険と狂気に陥るだろうが、活字体で、我々手綱の同等で、我々は制御し、理解しやすく、我々のコードは、よりエレガントにすることができます。
概要
この記事は、活字体とJavaScriptの型システムについて説明し、どのように活字体で宣言し、割り当てのタイプを処理します。しかし、また、このような文字列の配列としてある程度の柔軟性の問題は、デジタル配列に割り当てることはできません暴露。私たちはトラブルになり、アレイの複数の単一型を定義したいのですが、これらは問題ではありませんので、もし、活字体も解決策があります。
次では、活字体がこれらの要件に対処する方法を確認し、どのように対応するタイプの制限と定義を与えます。
参考文献:
活字体手册:活字体
オタクは、リアルタイム活字欄を開発:活字体の開発実際の戦闘を
参考図書:typescriptです実用的なガイド
参考:斜活字体中国語版(あなたの本を購入した場合、本書のバージョン活字体が1.5+ではなく、最新バージョンを説明することで、購入することをお勧めしません、あなたは、参考書の活字体の実用的なガイドを購入することができます)
私の個人的なブログ:http://www.gaoyunjiao.fun/?p=114