2016-08-13 7 views
3

私が知っている限り、Typescriptにキャストする構文は2種類あります。なぜtypescriptに2つの異なる構文のキャストがあるのですか?

ちょうど私が1または2の生成されたコードが完全に同じであると思い

const a = b as A; 

をキャストするasステートメントを使用して

const a = <A>b; 
  • をキャストする<>を使用して

    1. 。 そして、Typescriptの使用を開始したときに、asステートメントを使用する構文はありませんでした。私はasがtypescriptの新しい構文だと思います。

      しかし、新しい構文を作成する理由があるはずです。なぜこれらの構文が必要でしたか?キャスト構文が1つしかないと、不便なことはありますか?

  • +0

    「キャスト」と呼ばれることはありません。正しい用語は「型アサーション」です。 –

    答えて

    4

    としては

    here記載当初加えた構文が<foo>ました。
    ...

    JSXで<foo>スタイルのアサーションを使用している場合しかし、言語の文法で あいまいさがある:

    var foo = <string>bar; 
    </string> 
    

    したがって、今あなただけのためにas fooを使用することをお勧めします 整合性。

    +0

    ジェネリック構文を使用することは、ほぼ同じあいまいさに見えますか? – kyasbal

    +0

    はい、したがって、 '(foo:T1)=> {return T1;}のように動作するようにいくつかの回避策を講じなければなりません。 } ''の代わりに '(foo:T1)...'を使用します。しかし、キャストにそのような「冗長な」ものを追加することはできませんでした。したがって、追加のオペレータ – DAXaholic

    +0

    が表示されます。私の質問に親切に答えてくれてありがとう。 – kyasbal