2017-04-03 4 views
-2

はコードです:TSの型推論はあまりにも基本的なものか、そうではありませんか?ここ

var a;/// it is typed "any". 
    a=33;/// No inference 
    a=true; /// compiles without errors. 

それは最初の使用で型を推論しません。 haXeので

var a; /// it is now an "Unknown" kinda type, "monomorph" 
    a=33;/// Here it became int 
    a=true; /// compiler error, unable to set int to bool. 

私が間違って何をやっていますか? TypeScriptでそれを行うことは可能ですか?

私の知る限り、それは不可能です。したがって、この質問は、OCamlやHaxeのすべての開発者にとって大きな警告になる可能性があります。をすぐにのTSで初期化する必要があります。

+1

TypescriptはJavaScriptのスーパーセットなので、有効なJSコードも有効なTSコードでなければなりません。 – JJJ

+1

@JJJいいえ、TSの_syntax_はJS _syntax_のスーパーセットですが、それはすべてのJSコードがTSでコンパイルされることを意味するものではありません。以下は完全に有効なJavaScriptですが、TSでコンパイルに失敗します: 'var a = 33; a =真; – JLRishe

答えて

-1

何か間違っていますか?

TypeScriptの型は、変数が宣言されたときに推論され、後では推論されません。あなたが間違っていることは、彼らが事実の後で推論されることを期待していることです。

TSを実際に推論するにはどうすればいいですか?

この操作を行います。私は期待を推論するために使用さ誰にも機能的な観点から、実際にはかなり有効だったと思う

var a = 33; 
a=true; // error 
+0

だから、もし私がやっていることが間違っているなら、Haxeはそれをどうしますか?もちろん、私はinitで推論する最も単純な方法について知っていますが、二重の説明のためにありがとうございます。 – shal

+0

@shal Haxeは、明らかに事実の後で型を推論することができる別のプログラミング言語です。あなたがしていることは、TypeScript_では間違っています。 TypeScriptとHaxeは異なる言語であり、同じことをするための期待は間違っています。 – JLRishe

+0

申し訳ありませんが、私は間違ったことをやっているのか、TSで同じことをすることができるのか尋ねました。私の好奇心のためだけに、私の質問をあまりにも悪意を持って下降させる必要はありません。たぶん私はこの違いが他の誰にも気付かなかったので、それは他のHaxe開発者にとって有益なのでしょうか? – shal

2

を。私はJLRisheがF#のような言語が正式な推論を持っていること、あるいはTypescriptよりもはるかに進んでいることを知っている限りは少なくともそれに同意すると確信していますが、他のハードコア関数言語との違いがあると確信しています。

https://technet.microsoft.com/en-us/sysinternals/dd233180(v=vs.102) '型推論の考え方は、コンパイラが型を決定的に推論できない場合を除いて、F#構造体の型を指定する必要がないということです。

Haxeは非常にスマートなコンパイラを持っており、F#のように、Ocamlなどは完全に推論された型付けに関して非常に機能的に傾いています。私は関数型言語の観点から考えるTypescriptは、このような詳細が改善されたものでない限り、プレイスクリプトと見なすことができます.Javascriptよりも大幅に改善されていますが、実際はHaxeやF#と同じリーグではありません。それは現実に、より多くの人々がTypescriptを使用するということです。例えばAngular2プロジェクトでHaxeを使用するのはかなり面倒です。

しかし、言語が似ていると推測の意味が明らかに異なることに強く同意します。多くのプログラミング言語彼らに慣れると驚くべきことです。

しかし、私は質問が正しいと判断したので投票に落ちるべきではないと思っていますTypescriptは推論の点ではより良いことができました。質問は彼の仮定がビルドの回帰新しいバージョンのバージョンまたは改善 は常に可能であり、すべてのアクティブな言語で進行中です。

+0

注意!彼らはそれを言って今あなたを下降させます! – shal

関連する問題