Type Scriptベースタイプ


Type Scriptベースタイプ
今回からType Scriptのタイプシステムに接触し始めます.これもType Scriptの最も核心的な部分です.
今回はType Scriptの中のいくつかの基本的なタイプを紹介します.一部の特殊なタイプは次に単節で説明します.変数宣言を行うには、その対応するタイプを明記する必要があります.これはJavaScriptの変数宣言とは異なります.Type Scriptコードを書く時、すべての変数にはタイプが必要です.この観点は深く心に焼き付けられます.
1.慕課の解釈
Type Scriptのタイプは以下の通りです.
  • 元のタイプ
  • book
  • number
  • string
  • void
  • null
  • undefined
  • ビギナート
  • smbol
  • 元組tuple
  • エニュメレート
  • 任意any
  • unknown
  • never
  • 配列Aray
  • オブジェクトobject
  • 2.ブールタイプ
    一番簡単なデータタイプはtrue/falseの値です.
    const registered: boolean = false
    const done: boolean = Boolean(0)
    
    変数宣言文法:コロン  : 前は変数名で、後は変数タイプです.
    3.数字の種類
    2進数、10進数、16進数のいずれも使用できます.  number を表します
    let decLiteral: number = 6
    let goldenSection: number = 0.618
    let hexLiteral: number = 0xf00d
    let binaryLiteral: number = 0b1010
    let octalLiteral: number = 0o744
    let notANumber: number = NaN
    
    4.文字列の種類
    二重引用符または単引用符は文字列を表します.
    let protagonist: string = "Sherlock Holmes"
    let partner: string = 'Dr. John Hamish Watson'
    
    テンプレート文字列を使う:
    let protagonist: string = 'Sherlock'
    let sentence: string = `   ${protagonist}   、     。`
    
    テンプレート文字列は、通常の文字列の二重引用符と単引用符の代わりに引用符を使用します.テンプレート文字列は特定の文法を含んでいます.  ${expression} のプレースホルダと、プレースホルダ内に変数名を書くことができます.テンプレート文字列は変数値の解析を行います.
    5.voidタイプ
    関数の戻り値がない場合、その戻り値の種類をvoidとして定義することができます.
    function doNothing(): void {
      let a  = 10
    }
    
    一つの声明を出す  void タイプの変数は何の役にも立たないです.  undefined 和  null:
    let nothing: void = undefined
    
    6.nullタイプとundefinedタイプundefined 和  null は、すべてのタイプのサブタイプです.
    一般項目は標準オープンです.  --strictNullChecks この言葉はどういう意味ですか?  tsconfig.json にある  strictNullChecks オプションの設定は  false、以下のような操作は間違いないと思いますが、できるだけしないでください.
    let num: number = undefined
    let list: number[] = undefined
    let name: string = undefined
    
    7.配列タイプ
    配列の種類には2つの表現方法があります.最初は元素の種類の後に接続します.  []は、このタイプの要素からなる1つの配列を表している.
    let list: number[] = [1, 2, 3]
    let names: string[] = ['Sherlock', 'Watson', 'Mrs. Hudson']
    
    もう一つの方法は、配列汎型(汎型の後続は個別に紹介される)を使用することであり、Array:
    let list: Array<number> = [1, 2, 3]
    let names: Array<string> = ['Sherlock', 'Watson', 'Mrs. Hudson']
    
    各種要素のタイプを混ぜる:
    let list: any[] = ['Sherlock', 1887]
    
    最初の配列タイプの表現方法を使用して、簡潔で直感的な書き方を推奨します.
    8.anyタイプ
    ユーザーからの入力を受信する場合もありますが、その変数の種類は確認できません.この場合、我々はタイプ検測器でこれらの値を検査するのではなく、直接コンパイル段階の検査を通じてそれらを使用することができます.  any:
    let input: any = 'nothing'
    
    input = 0                   // ok
    input = true                // ok
    input = []                  // ok
    input = null                // ok
    input = Symbol('any')       // ok
    
    一つのデータがanyタイプの場合、その任意の属性にアクセスできます.この属性が存在しなくても、
    let anything: any = 10
    
    anything.eat()              // ok
    anything.name               // ok
    anything[0]                 // ok
    new anything()              // ok
    anything()                  // ok
    
    上記の例からは、anyタイプはほぼ任意の操作が可能であり、このようにして、タイプが正確でありながら、異常なコードを実行することが容易であることが分かる.私たちはType Scriptを使っています.コードの丈夫さのために、なるべくanyの使用を減らしたいです.
    9.objectタイプobject 元のタイプではないことを表します.
    let obj: object
    
    //     
    enum TokenType {
      ACCESS = 'accessToken',
      REFRESH = 'refreshToken'
    }
    
    obj = TokenType
    obj = [1, 2, 3]
    obj = [1, 'string'] //     
    obj = { a: 1 }
    
    列挙、配列、タプル、一般的なオブジェクトが表示されます.  object を選択します
    10.紛らわしい点
  • Type Scriptに記載されているタイプのものを使用します.  、例えばブックレン、number、stringなど.
  • 大文字で始まるBoolean、Number、StringはJavaScriptの構造関数を表しています.
  • let a = new Number('10') // a === 10   false
    let b = Number('10') // b === 10   true
    
    a instanceof Number // true
    b instanceof Number // false
    
    コードの説明:
    1行目は、  new Number('10') 得られたのは構造関数であり,本質はオブジェクトである.
    第2行,Number('10') を選択します  10 一つの数字10を声明する方法です.本質は一つの数字です.
    4-5行目、instanceof 演算子は、コンストラクタを検出するために使用されます.  prototype 属性はインスタンスオブジェクトのプロトタイプチェーン上に表示されますか?a オブジェクトです.  __proto__ 属性は、オブジェクトの構造関数の原型オブジェクトを指します.  Numberです.  trueb は一つの数字です.  false__proto__ 標準以外の属性でも使えます.  Object.getPrototypeOf() 方法は、オブジェクトのプロトタイプにアクセスします.
    a.__proto__ === Object.getPrototypeOf(a) // true
    
    11.まとめ
    この小節ではType Scriptの基本的なタイプを紹介します.
  • Type Scriptに記載されているタイプのものを使用します. 
  • 濫用しないでください.  any !