2016-08-13 90 views
3

只要我知道,在Typescript中有兩種類型的語法。爲什麼在打字稿中有兩種不同的鑄造語法?

  1. 只需使用<>

    const a = <A>b; 
    
  2. 使用as語句投

    const a = b as A; 
    

我猜產生的1碼或2完全一樣。 而且,當我開始使用Typescript時,沒有這樣的語法來使用as聲明。我猜as是打字稿中的新語法。

但是,應該有一些理由來使新的語法。爲什麼他們需要這些語法?如果只有1個演員的語法,是否有不方便的地方?

+0

這不叫(不應該被稱爲)「鑄造」。正確的術語是「類型斷言」。 – 2016-08-13 07:21:46

回答

4

如上所述here

最初添加的語法是<foo>
...

但是沒有在語言語法的 歧義 JSX使用<foo>風格的斷言時:

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

因此現在建議您只使用as foo爲 一致性。

+0

使用泛型語法似乎使得幾乎相同的歧義,不是嗎? – kyasbal

+0

是的,因此你必須採取一些解決方法,使它像'(foo:T1)=> {return T1; ''而不只是'(foo:T1)...'。但是增加這種'多餘'的內容是不可能的,因此我看到額外的運營商 – DAXaholic

+0

。感謝您的好意回答我的問題。 – kyasbal