TypeScript part1at TECH
TypeScript part1 - 暇つぶし2ch100:デフォルトの名無しさん
12/10/06 14:28:40.06
で、Javascriptは糞、ということに関してはコンセンサスとれてますよね。
まさかWeb2.0だAjaxだHTML5とかいうバズワードでノセられた奴が強弁してないよね。

101:デフォルトの名無しさん
12/10/06 14:29:38.54
>>100
お前がJavaScriptとライブラリをごっちゃにしてるってことはよくわかったよ。

馬鹿が言った言葉は、やっぱり馬鹿だってわかるなw

102:デフォルトの名無しさん
12/10/06 15:18:00.94
バズワードをガン無視してる俺かっけーw

103:デフォルトの名無しさん
12/10/06 17:55:07.32
無能すぎて食って行くだけで必死の奴は
仕事にありつけそうな言語使えば良いよ

104:デフォルトの名無しさん
12/10/06 18:03:58.51
デブでもおばはんでも乗れるママチャリが普及してるからって
ロードレーサーにママチャリ乗れっていう馬鹿はいない

105:デフォルトの名無しさん
12/10/06 18:07:43.57
近所のコンビニにライダーブーツ履いてNS400に乗って行くんだ

106:デフォルトの名無しさん
12/10/06 18:15:57.46
ところが原付になんでもやらせようとしだすから

107:デフォルトの名無しさん
12/10/06 18:29:01.76
Typescriptは原付を改造パーツでチューンナップしようって発想
改造しても所詮原付は原付

108:デフォルトの名無しさん
12/10/06 20:41:39.23
はっきりいって、c++とhtml5,jsだけで良いよね
実装が増える毎にVMの中のヒトたちが対応しきれない悪寒

109:デフォルトの名無しさん
12/10/06 20:49:42.85
お前よりもVMの中の人達は優秀。
対応しきれないのはお前だけ。

110:デフォルトの名無しさん
12/10/06 20:50:16.95
>>108
>>103

111:デフォルトの名無しさん
12/10/06 21:01:43.24
>>85
型付けても通るとかダメダメじゃん

112:デフォルトの名無しさん
12/10/06 21:21:09.30
組み込みの文字列連結がある言語なら一番普通の動作だろ

113:デフォルトの名無しさん
12/10/06 21:30:01.28
型付けてるんなら x + y; の挙動は
コーディング時に明確に予測できるはずだから何の問題もないだろ
その程度の言語仕様も知らずに使える言語が欲しいってことか?

114:デフォルトの名無しさん
12/10/06 21:40:08.37
>>111
なんで通らないと思ったの?

115:デフォルトの名無しさん
12/10/06 21:41:49.61
>>112
え?

116:デフォルトの名無しさん
12/10/06 21:45:19.13
動的言語で普通この手の話で問題視されるのは「結果が予測できないこと」なわけで
yの内容によって文字列連結になったり数値加算になったりするなら問題だが
そうでなくて挙動が完全に予測できるんなら全く問題ない

117:デフォルトの名無しさん
12/10/06 21:46:17.70
暗黙の型変換の話であって
動的言語とか全く関係ないんだが

118:デフォルトの名無しさん
12/10/06 21:49:23.06
文字列とその他の+ではその他の方を
文字列に変換してから連結する仕様になっている言語はかなり多いからごく自然なことだが
暗黙の変換だろうが言語仕様知ってりゃ予測できるだろ

119:デフォルトの名無しさん
12/10/06 21:55:11.18
つーか、ただの演算子オーバーロードでは?

文字列.add(文字列)
文字列.add(数値)

addメソッドがオーバーロードされてるのと同じ事だろう。

型の問題っていうのは、互換性がない型、オーバーロードも定義さていないもの、
無関係のものを代入したら動かないのに、それが実行されるまで
わからないってのが問題なのに。

120:デフォルトの名無しさん
12/10/06 21:58:45.78
言語仕様の範囲ならどんな振舞いだって原理的に予測可能だわな

121:デフォルトの名無しさん
12/10/06 22:00:55.75
>>119
むしろ動いちゃうのが問題
>>85で引数に型指定しない場合だと、x, yの内容によって+の挙動が全く異なってしまう
さすがに+使うときは、文字列連結か数値加算かどちらか一方しか期待してないだろうから、
予期しない動作によるバグの原因になる。
型を指定するなら何の問題もない。

122:デフォルトの名無しさん
12/10/06 22:26:37.51
URLリンク(www.typescriptlang.org)

上で遊んでみたんだけど、まだ型推論は全然だね
こんなコードが通るし

function foo() : number { return 1; }
function bar() : string { return "23"; }
function baz(f, g) { return f() + g(); }
function hoge() : number { return baz(foo, bar); }

でもMSはF#を作れるところだし、今後に期待ってところか

123:デフォルトの名無しさん
12/10/06 22:37:34.93
それってC#で言えば
private var func(){...}
で型推論してくれよって話じゃないか。

124:デフォルトの名無しさん
12/10/06 22:47:46.52
>>122
型推論はAIじゃねぇよ。
どちらでも取れる問題の
正解を出せなんて不可能な話。

125:デフォルトの名無しさん
12/10/06 23:10:28.55
どちらでも取れる?
hoge()の戻り値はstring以外ありえんだろ

126:デフォルトの名無しさん
12/10/06 23:12:02.77
>>125
どこかでオーバーライドするかもしれんだろ。
windows.hoge = function () {return 123}

127:デフォルトの名無しさん
12/10/06 23:14:24.55
>>126
>>122でstring返す関数にnumberって型書いてエラーにならないのと
何の関係があるのそれ

128:デフォルトの名無しさん
12/10/06 23:16:05.29
>>126
それは無いものと考えないと静的解析の意味無い
ジェネリックには対応する予定らしいからもうちょっと型推論も強力にはなるんじゃないの

129:デフォルトの名無しさん
12/10/06 23:21:13.60
上はエラーになって下がエラーにならないんだから、もうね...

function f() : number { return 1 + "2"; }
function g() : number { return ((x,y) => x + y)(1, "2"); }

130:デフォルトの名無しさん
12/10/06 23:25:25.05
だんだんイチャモンになってきたな。

131:デフォルトの名無しさん
12/10/06 23:26:58.75
いやいや、間違った型を書いてもエラーにならないのは
型を全然書かないより邪悪ですから

132:デフォルトの名無しさん
12/10/06 23:32:40.25
さすがに型まで書いてるのに
数値の加算が文字列連結になったらびっくりするだろ

でも>>129のgの戻り値を使ったら、そういうことが起こる

133:デフォルトの名無しさん
12/10/07 00:07:25.88
>>132
お前、数値オブジェクトと演算子オーバーロードって
発想が頭にないんじゃないのか?

A + B というのは演算子 = メソッド と考えると
A.+(B) という形に置き換えられる。
お前が理解しやすい形にするとA.add(B)

つまりはこういうことだよ。
String ret = num.add(str);



134:デフォルトの名無しさん
12/10/07 00:08:54.88
たんに、数値オブジェクトのaddメソッドは
取りうる引数に、数値オブジェクト以外に
文字列オブジェクトに対応している。


135:デフォルトの名無しさん
12/10/07 00:11:41.68
どうでもいいけどアンダース的には演算子はインスタンスメンバじゃなくて静的メンバだよ

136:デフォルトの名無しさん
12/10/07 00:16:00.15
>>133>>134
で?それが

function f(x : number, y : number) { return x + y; }

においてfが文字列連結を実行しても良い理由になるの?

137:デフォルトの名無しさん
12/10/07 00:18:33.48
>>136
両方が数値の場合は、数値計算ですよ?
片方が文字列の場合は、文字列結合バージョンの加算が呼ばれます。

138:デフォルトの名無しさん
12/10/07 00:20:10.83
>>137
>>136のfの引数に>>129のgの戻り値を入れてみ?

139:デフォルトの名無しさん
12/10/07 00:21:52.90
>>97
Local "_this" silently conflicts in arrow function
URLリンク(typescript.codeplex.com)

いちおう Issue Tracker に挙がってるけど

Capturing instance methods breaks 'this'
URLリンク(typescript.codeplex.com)

this 周りは仕様に注意を要する部分ではあるとは思う

140:デフォルトの名無しさん
12/10/07 00:21:57.68
普通に数値計算されましたが?

141:デフォルトの名無しさん
12/10/07 00:22:09.72
C#で(int)(object)"1"とかやっても通るのと一緒だろ
動いちゃうのは問題だが

142:デフォルトの名無しさん
12/10/07 00:24:17.11
>>140
あほか。すぐバレる嘘付くなよ
g()は文字列"12"なんだからfに入れたら文字列加算になるよ
gの型注釈がnumberだから型エラーにはならないけど

143:デフォルトの名無しさん
12/10/07 00:26:02.74
>>142
バージョン古いんじゃないですか?w

144:デフォルトの名無しさん
12/10/07 00:26:12.93
コンパイルオプションで実行時に型チェックするモードがあったほうがいいな
型推論をいくら完璧にしようが>>141みたいなのはどうしようもないし

145:デフォルトの名無しさん
12/10/07 00:26:46.89
>>143
バージョンwwwお前ばかすぎ

146:デフォルトの名無しさん
12/10/07 00:31:14.49
>>144
明示的なキャストは自己責任だと思うけど、実行時の型チェックは欲しいね

147:デフォルトの名無しさん
12/10/07 00:32:20.49
互換性のために仕方ないことでしょ。

そのうち、strictモードみたいなのでて
レガシーコードと呼ばれるようになるさ。

148:デフォルトの名無しさん
12/10/07 00:35:32.63
ようするにみんなの結論は
ベストではないが、ベターな言語なんだろ?

149:デフォルトの名無しさん
12/10/07 00:36:39.20
Javascriptよりはマシ

150:デフォルトの名無しさん
12/10/07 00:38:15.16
標準準拠で互換性があってベターなら使わない理由はないな。

151:デフォルトの名無しさん
12/10/07 00:38:50.82
別に普及しなくてもいいけどGoogleのDartみたいなバカだけでも潰してくれ

152:デフォルトの名無しさん
12/10/07 00:40:12.05
まだ様子見の段階

153:デフォルトの名無しさん
12/10/07 00:40:48.57
Dartよりはマシ

154:デフォルトの名無しさん
12/10/07 00:52:18.16
MSだからいつものようにボロカスに叩かれるかと思ったら
微妙な反応が多くて面白いなw
CofeeScriptやDartがいかにクソだったかがわかる

155:デフォルトの名無しさん
12/10/07 00:58:25.61
MSはプログラミング言語と開発環境には定評と実績がある

156:デフォルトの名無しさん
12/10/07 01:08:31.94
案外海外のほうがアンチMS的な反応が多かった。
どうせすぐハシゴ外すんだろ、みたいな。

157:デフォルトの名無しさん
12/10/07 01:11:13.27
それが一番当てはまるのはGoogleだろ
MSがIEに独自言語の処理系載せたりしたら永遠に外せなくなるぞ

158:デフォルトの名無しさん
12/10/07 02:03:33.96
ぶっちゃけDart発表時のほうが盛り上がってたよね
オプションで型チェック出来て素晴らしいって感じで

もっともダウンキャストに警告すら出さないと判明してから
そっぽ向かれたけど

159:デフォルトの名無しさん
12/10/07 02:27:42.80
Dartがそっぽを向かれたのはダウンキャストの警告とかが原因ではなくて、
良い言語だけど、乗り換えないといけない。つまり文法的に互換性がないということだろう。

TypeScriptにはそれは当てはまらなくて、将来のECMAScriptを
先取りしているから、JavaScriptの正統な進化版として考えることが出来る。

160:デフォルトの名無しさん
12/10/07 02:51:35.93
>>154
ヘルスバーグの名前が出てるからとりあえずみんな様子見てるんじゃないの?

161:デフォルトの名無しさん
12/10/07 06:40:43.56
(function (a, b?) => { console.log(a, b); })("a"); // OK
((a, b?) => { console.log(a, b); })("a"); // Errors
((a?, b) => { console.log(a, b); })("b"); // Errors
((a, b) => { console.log(a, b); })("a", "b"); // OK

悪くないんだけど、微妙に C# 独自の nullable とか this とか
アロー演算子合わせるとエラーに塗れる傾向はあるな
その辺なんか謎だわ

Nullable 型
URLリンク(ufcpp.net)

162:デフォルトの名無しさん
12/10/07 07:32:08.05
URLリンク(code.msdn.microsoft.com)

nullable導入のおおまかな経緯はこんなかんじ。

何でNullがオブジェクトなの?
URLリンク(gist.github.com)
Type(null) は Null 型だから Object ではないってことですか。typeof とは違うんですね。
URLリンク(togetter.com)
URLリンク(wiki.ecmascript.org)
URLリンク(gist.github.com)

しかして typeof が理解に苦しむ
ほんとは null はオブジェクトとして扱いたくないんだけど

実際のとこ至るところでYou、typeofでObjectt判定しちゃいなよ
してるから null はオブジェクトみたいに扱われてるんだなと…

163:デフォルトの名無しさん
12/10/07 08:31:48.05
>>159
Dartを良い言語と言ってる時点で
Java, JS, Perl, PHP程度しか使った事が無い
ドカタまるだしなのが分かる。
もうちょっとマトモな言語も使ったら良いよ。

164:デフォルトの名無しさん
12/10/08 11:12:46.64
マトモな言語教えてください

165:デフォルトの名無しさん
12/10/08 14:20:32.38
VB

166:デフォルトの名無しさん
12/10/08 15:45:07.25
>>72
jsだけで飯が喰えるのに、いくつも言語おぼえる必要があるなんて
2次請け、3次請け以下の大した技術力のない奴隷商に飼われているとしか思えない。

167:デフォルトの名無しさん
12/10/08 15:54:21.68
むしろjsの仕事なんてドカタ仕事しかない

168:デフォルトの名無しさん
12/10/08 16:13:57.29
また苦しくなったらドカタかw
よっぽど都合がわるいんだろうなw

169:デフォルトの名無しさん
12/10/08 16:15:40.20
他人が薄給ドカタ仕事を引き受けてくれるのに
何の都合が悪いというの?

170:デフォルトの名無しさん
12/10/08 16:22:08.31
>>166
底辺の奴らだけが、奴隷市場の流行に合わせて
Java, VB, PHP, JavaScript 等を覚える必要がある

171:デフォルトの名無しさん
12/10/08 16:27:02.20
>>169
いや、単純にじゃあドカタじゃないやつは
なんて呼ぶの?って話だよw

172:デフォルトの名無しさん
12/10/08 16:31:15.67
週40時間労働、年収800万以上でプログラマを名乗れます
それ以下はドカタ

173:デフォルトの名無しさん
12/10/08 16:39:55.06
>>172
ダウト。それだと学生プログラマは存在せず
学生ドカタということになってしまう。

174:デフォルトの名無しさん
12/10/08 16:42:47.73
え?文脈的に働いてる人の話だって分からない?
ドカタに文脈なんて無理かー

175:デフォルトの名無しさん
12/10/08 16:44:18.74
>>173
え?お前が書いた>>166って学生も対象にしてたの?

176:デフォルトの名無しさん
12/10/08 17:10:33.74
プログラマとドカタなんて俺からみたら違いはない。
喧嘩せずに仲良くやりなよ。
そんなことよりtypescriptでひとつなんか作って公開してみて
作った感想でも披露してみないか?

177:デフォルトの名無しさん
12/10/08 17:12:19.96
>>175
常識でわかるだろw

178:デフォルトの名無しさん
12/10/08 17:40:18.99
常識で分かります。>>173が馬鹿だってことが。

179:デフォルトの名無しさん
12/10/08 23:12:20.09
なんで2ch掲示板ってこうなるんだろ
匿名だからでは説明できない。redditと比べても明かに低レベル
日本人の資質か

180:デフォルトの名無しさん
12/10/09 02:50:38.07
日本人の資質だからでは説明できない

181:デフォルトの名無しさん
12/10/09 05:20:26.98
反応の速さにこだわるから
即答できなければレベル高くても失格という風潮

182:デフォルトの名無しさん
12/10/09 06:54:35.45
推すのは得意というか
でも肝心要で引き際を誤る

そしてデスマへ。責任論を巡って議論。
このパターンはとても多いと思う

183:デフォルトの名無しさん
12/10/09 07:16:52.33
ここは全部自演も余裕だからサンプルにはならんけどね

184:デフォルトの名無しさん
12/10/10 01:16:38.55
>>179
それ、比較対象がおかしくね?4chが妥当

185:デフォルトの名無しさん
12/10/10 04:50:34.46
>>184
4chはふたばだろアホ

186:デフォルトの名無しさん
12/10/10 04:51:47.08
       //
     /  /   バカッ
     //⌒)∩__∩
    /.| .| ノ     ヽ
    / | |  ●   ● |     
   /  | 彡  ( _●_) ミ 馬鹿には無理
   /  | ヽ  |∪|  /_
  // │   ヽノ  \/
  " ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ

187:デフォルトの名無しさん
12/10/10 06:42:09.15
まあIT関連のニュース記事やブログ記事も日本語のやつは平均的に劣ってるからな

188:デフォルトの名無しさん
12/10/10 08:04:29.22
平均が優秀ではないのは当然です
まず基本的なことから始めないと最先端のニュースも扱えません

189:デフォルトの名無しさん
12/10/10 08:11:29.44
基本的な部分がダメだから言ってんだろw

190:デフォルトの名無しさん
12/10/10 08:12:45.01
別に内容の難易度で優劣付けてないわ。質だよ質

191:デフォルトの名無しさん
12/10/10 08:27:59.51
量ではなく質なら優秀なやつが数人いるだけでいい

192:デフォルトの名無しさん
12/10/10 15:00:15.97
よくそんなズレた頓珍漢なレスできるな

193:デフォルトの名無しさん
12/10/10 15:19:50.41
言語に優劣がある
のではなく
ただの馴れと慣習による部分が大きいだけだ。流儀は場所によって変わるのは当然

194:デフォルトの名無しさん
12/10/10 15:31:56.93
現実に言語には優劣がある
ただしそれは一方の角度から見た場合の優劣であって
別の角度から見ればまた違う優劣が現れる
すなわちVBは馬鹿用なのでRubyより劣るとしても
速度ではRubyの方が劣っていたりする訳だ

195:デフォルトの名無しさん
12/10/10 16:09:59.15
rubyとかすかしたかっこつけたい奴が使ってるだけでしょ
VBAでいいじゃん

196:デフォルトの名無しさん
12/10/10 18:37:26.47

29 デフォルトの名無しさん [sage] 2012/10/10(水) 18:11:39.35 ID: Be:
    URLリンク(www.infoq.com)

    LinkedIn は先日,パフォーマンスとスケーラビリティを理由として,
    同社のモバイル用バックエンドインフラを Ruby on Rails から Node.js にリプレースした。
    これに対して元 LinkedIn のチームメンバが,何が問題であったのか,自身の意見を表明している。

30 デフォルトの名無しさん [sage] 2012/10/10(水) 18:15:24.99 ID: Be:
    ・優れたパフォーマンス – いくつかのシナリオにおいて,Node.js は Rails の20倍以上高速だった。
    ・サーバ30台の処理をわずか3台で実行できるため,10倍以上のトラフィックを処理する余地が生まれる。
    ・フロントエンドの JavaScript 技術者をバックエンドコード開発に従事させることが可能になる。
     この結果,2つあった開発チームが1つに統合された。

197:デフォルトの名無しさん
12/10/10 19:53:12.74
じゃあ、初めからNode.jsでやっときゃ良かったのに、
って話でも無いんだろうな。
サービスを色々試行錯誤する分にはRubyの方が楽だったのかも。

198:デフォルトの名無しさん
12/10/10 20:37:48.80
railsとnode.jsって用途ちがくね?

199:デフォルトの名無しさん
12/10/10 21:47:44.64
>>154
> MSだからいつものようにボロカスに叩かれるかと思ったら

もはやそんな時代じゃないしな。
Mozillaあたりの連中はMSガーMSガー喚いててて笑ったけど。

200:デフォルトの名無しさん
12/10/10 21:54:30.31
ボカロスに叩かれる

201:デフォルトの名無しさん
12/10/10 21:54:41.59
あとは、今はECMAScriptのスーパーセットだとしても
どっかで互換壊れてまうだろとJavaScript原理主義者の指摘
俺の答えは、それがどうした、ですかね。ゴミ言語JavaScriptなどぶち壊せ。捨てろ。

202:デフォルトの名無しさん
12/10/10 22:24:38.31
むしろECMAScriptがTypeScriptに合わせろ
っていうかもし互換壊れて大きな問題になるほど普及すれば必然的にそうなるだろうし

203:デフォルトの名無しさん
12/10/10 22:41:41.40
これでスマホアプリ作ってみようかな
JavaScript互換だから手軽に始められるのはいいね

204:デフォルトの名無しさん
12/10/10 23:44:49.43
NodeからJavaScriptちゃんと見たけど良い言語じゃん、大規模開発に向かないだけで。それをTypeScriptが補完してくれるんだから最強だね。

205:デフォルトの名無しさん
12/10/11 00:27:01.14
完全に型注釈付けるのを強制するか、ちゃんと型推論してくれるなら
JSの型付けの弱さを克服できるんだがなぁ > TypeScript

206:デフォルトの名無しさん
12/10/11 00:56:40.33
javascript で template programing とか誰得

207:デフォルトの名無しさん
12/10/11 01:41:29.91
>>205
コード書く側が意識してりゃ済む話だろ

208:デフォルトの名無しさん
12/10/11 07:19:44.42
意識してりゃ済む話なら型チェックなんて要りません

209:デフォルトの名無しさん
12/10/11 08:49:00.94
間違いを一個だけ探すなら意識するだけで済む
百個ぐらい溜まってからまとめて探すなら型チェックが必要

210:デフォルトの名無しさん
12/10/11 09:40:33.99
インテリセンスを自力で実装した事のある俺に言わせて貰うと
型の省略は開発ツール開発者に恨みでもあるのかというくらい酷い
分析ツールを走らせるための情報が圧倒的に足りてない
型推論なんて言語開発者のオナニーだからやめてくれ

211:デフォルトの名無しさん
12/10/11 09:45:01.91
開発ツールの開発者がヘボいとJavaみたいに同じ所に二回も三回も型名を書かないといけないわけか。

212:デフォルトの名無しさん
12/10/11 09:47:21.69
>分析ツールを走らせるための情報

その辺はおいおい言語の成熟と共に出揃ってくるもんなんじゃ
日本語と広辞苑の編纂作業みたいな一度解体する作業は不可欠や

213:デフォルトの名無しさん
12/10/11 10:07:58.75
そりゃ「補完」の情報を渡すべき所に「型」の情報を渡せば間違いも起きるわ

214:デフォルトの名無しさん
12/10/11 10:29:32.70
インテリセンスが型推論すれば良いだけの話だ罠

215:デフォルトの名無しさん
12/10/11 11:38:40.26
>>214
型推論じゃないよ補完は名前を推定するんだよ

216:デフォルトの名無しさん
12/10/11 11:48:36.98
補完よりキータイプ速い漏れは勝ち組
っつーか補完機能なんて邪魔だろ?

217:デフォルトの名無しさん
12/10/11 12:11:05.22
ドカタの発想だな

218:デフォルトの名無しさん
12/10/11 15:33:49.24
>>216 同意
つうかタイピング遅いやつ多すぎ

219:デフォルトの名無しさん
12/10/11 19:20:47.79
>>215
アホか。コンパイラが型推論できるんだから
インテリセンスだって型推論で型情報を得られるだろ

型が省略されてるから名前の補完ができませーん < アホ

220:デフォルトの名無しさん
12/10/11 20:49:00.15
型推論は完璧じゃないよ。

たとえば変数Aがあったとき、
この型を推論できる言語はない。

221:デフォルトの名無しさん
12/10/11 21:09:22.41
お前は何を言ってるんだ

222:デフォルトの名無しさん
12/10/11 21:20:06.73
場合によっては型推論があっても
型注釈を必要とするケースはあるが、
低能さが文面から滲み出てる>>220が考えつく程度のコードなら
型推論できると思うぞ

223:デフォルトの名無しさん
12/10/11 22:03:10.22
function(x,y,z){return x===y ? y : z;}
x,y,zの型は同じ
同じならnumberでもstringでもなんでもいい

224:デフォルトの名無しさん
12/10/11 23:20:15.99
VB、C#、F#、C++/CLI、F#、Powershell、TypeScript
MSの言語設計センスは神懸ってるよな
玩具のSmallBasicですら非常にバランスのいいちゃんとした言語だし
どっかのGoogleとはえらい違いだ

225:デフォルトの名無しさん
12/10/11 23:29:06.34
型を二回書くだけでツールがいろんなことをやってくれる
クラスやメソッドや引数の細かい情報までを
キー一押しまたは何もせずに表示してくれる
これほどすばらしい機能は他にないよ
君らは天才だから膨大な量のリファレンスを丸暗記して
書いたクラスのメンバの引数までも完全把握してるんだろうけど
俺みたいな凡人は記憶力弱いから無理なんだよ
言語開発者も天才ばかりだから俺みたいな凡人の苦労はわからない
凡人向け開発ツールを天才たちは作ってくれないから自分で作るしかない
だからこそ型情報を全力で守らなければならないのだよ
型を軽視する言語は天才にしか扱えないんだよ

226:デフォルトの名無しさん
12/10/11 23:34:15.63
<T>を軽視する言語は今すぐ<T>を追加しろー

227:デフォルトの名無しさん
12/10/11 23:36:59.53
Playgroundって開発環境として提供されないのかな
デモ用にしておくにはもったいない出来

228:デフォルトの名無しさん
12/10/11 23:42:34.36
googleの言語、開発ツールは2流だよね

229:デフォルトの名無しさん
12/10/12 05:50:01.30
>>223
URLリンク(www.typescriptlang.org)
function fn (x: number, y: number, z:number) : number {
return x===y ? y : z;
}

alert(""+fn(0,0,7));

呼び出す側での型キャストもどきが必要になるから
あんま使い勝手良くならないんだと感じる…
型はあるんだけど、それを演じて示す prinf にあたるものが欠けてるような

230:デフォルトの名無しさん
12/10/12 06:09:05.61
>>223
多相型も知らんの?馬鹿ですねー
それくらい楽勝で型推論できる

231:デフォルトの名無しさん
12/10/12 11:27:47.74
function<T>(x: T, y: T, z: T){return x===y ? y : z;} だな
ジェネリックは早期に導入予定

232:デフォルトの名無しさん
12/10/13 12:34:14.40
interface console {
time(obj:string);
}

visual studio 上で(playgroundだと再現できない)
console オブジェクトの足りてないメソッドをコード中で追加

そして補完を試してみると
なかなか壮絶な候補が現れた…


いうほどジェネリックとかは簡単じゃない

233:デフォルトの名無しさん
12/10/13 12:56:14.51
使い方が間違ってるだけ。consoleはフィールドなのにinterfaceとして
宣言するのはおかしいと思わないのか?
フィールドに型を付けるにはdeclare varを使うけど、TypeScript組み込みのと重複するから
追加したかったらTypeScriptのlib.d.tsを編集する必要があると思う。


234:デフォルトの名無しさん
12/10/13 16:27:05.19
そんなには、間違ってないよ。
ArrayとかConsoleとかFunctionとか、組み込みオブジェクトは
interfaceで定義されていて(lib.d.ts)、同名のinterfaceを定義することで
拡張することが可能になってる。
たとえばjQueryプラグインはinterface JQueryを別途作れば足せる、というようにね。

ただ、組み込みクラスに対する拡張は挙動が変(Consoleに限らずArrayとかも)で
これはただたんなるバグなので次版では直してくるでしょう。

235:デフォルトの名無しさん
12/10/13 18:23:55.40
ちょっと触ってみたけど
構造的部分型を採用してるとこはポイント高いね

236:デフォルトの名無しさん
12/10/13 18:36:56.77
VSのプラグインって動作が怪しいねえ。
インストールするとVSが起動時に例外をスローして落ちるようになった…

237:デフォルトの名無しさん
12/10/14 16:33:16.37
URLリンク(stackoverflow.com)

ある意味 interface を多用する傾向があるのか
書いてるとたしかに定義したくなるのはわからんでもない

入れ子になってるかんじの interface とかこれは
w3c の draft からしてそんなかんじなのか…

URLリンク(www.w3.org)

238:デフォルトの名無しさん
12/10/15 22:18:36.69
URLリンク(github.com)

どうせ裏で node.js 使うんなら
transcript の変換ステップを間に挟まない
こういうのも結構ありか

URLリンク(dist.springsource.org)

フォントを変えるところで .scripted ファイルいじるあたり
おもわずワロタw

URLリンク(sourceforge.jp)

239:デフォルトの名無しさん
12/10/18 19:19:00.00
そんな事よりDartしようぜ!

240:デフォルトの名無しさん
12/10/18 21:23:36.92
TypeScriptの変換後のJavaScriptコードの美しさを見たら
Dartなんかクソほどの価値もないことがわかる

241:デフォルトの名無しさん
12/10/18 21:37:20.58
TypeScriptは、JavaScriptは中間言語とか抜かしてる馬鹿へのアンチテーゼ

242:デフォルトの名無しさん
12/10/19 00:35:48.55
JSはネットのbytecodeか?
URLリンク(brendaneich.github.com)

243:デフォルトの名無しさん
12/10/19 03:50:20.03
>>242
JSがとんでもない言語になりそうな予感・・・
読んでてちょっと笑ってしまったw

244:デフォルトの名無しさん
12/10/19 17:14:46.55
お花畑すぎて吹いた

245:デフォルトの名無しさん
12/10/20 15:42:08.05
TypeScript 基本的には好きなんだが、もう少し、記述方法に制限を掛けて欲しかったね。
この言語仕様だと、いろいろな表記が可能だから、プログラムが読みにくくなりそう。

246:デフォルトの名無しさん
12/10/20 22:52:25.76
JavaScriptが通らないといけないという大前提があるから仕方ない

247:デフォルトの名無しさん
12/10/20 23:24:57.14
Web以外で使いたいから、int64_tに相当するのも欲しいけど、
Javascriptにコンパイルできなくなるしな。

248:デフォルトの名無しさん
12/10/21 19:07:30.03
Dartみたいに糞JavaScriptを吐いていいならエミュレーションで実装できるよ

249:デフォルトの名無しさん
12/10/21 22:28:37.40
プログラムファイルに、#lang r6rsみたいに書き込んで
文法チェック切り替える言語もあるね。


250:デフォルトの名無しさん
12/10/23 18:49:47.35
PowerShellをTypescriptで置き換えよう(回帰)

251:デフォルトの名無しさん
12/10/29 15:04:42.13
モジュールの下に宣言したインターフェイスを
モジュールの外のクラスで実装するにはどうしたらいいんだろう

252:デフォルトの名無しさん
12/11/10 18:01:12.67
高度に発達したプリプロは言語と見分けがつかない

253:デフォルトの名無しさん
12/11/10 18:03:26.18
>>242-244
一応言っておくが、ブレンダン・アイクは
オリジナルのJavaScript(当時livescript)の開発者だぞ

254:デフォルトの名無しさん
12/11/10 21:30:45.70
JavaScriptがこれほど使われてるのはJavaScriptが言語として優れているからでは決してないし
むしろクソ言語を生み出した元凶じゃないか

255:デフォルトの名無しさん
12/11/10 22:20:26.75
クロージャがなければ即死だった

256:デフォルトの名無しさん
12/11/10 22:43:49.37
組込み言語だけど表現力もあるし地雷原もある素晴らしい言語。
JavaScript 「再」入門
URLリンク(developer.mozilla.org)
JavaScript Garden
URLリンク(bonsaiden.github.com)
Googleスタイルガイド
URLリンク(cou929.nu)
構文は簡潔ではあるよね。

257:デフォルトの名無しさん
12/11/10 23:29:28.38
こんだけ普及するとこれを思い出さずにはいられない
URLリンク(monobook.org)

258:デフォルトの名無しさん
12/11/11 18:39:09.11
>>254
言語としてはそれほど悪くないよ。
Perl, PHP, VBと比べたら天使が舞い降りてきたみたいなもん。

まあブラウザ上は非互換や過去の遺物で悲惨みたいだけど。

259:デフォルトの名無しさん
12/11/11 18:39:56.66
>>255
もともとSchemeを導入する予定だったから、
クロージャ無しで設計されるのはありなかったな。

260:デフォルトの名無しさん
12/11/11 20:26:06.73
>>258
天使とか言い過ぎだろ。
どちらかというと、馬鹿と鋏は使いようって感じだ。

261:デフォルトの名無しさん
12/11/11 20:35:06.57
普通のスクリプト言語としては悪くないと思うが、
>>242で妄想してるように中間言語として使うなら明らかに失敗でしょ
数値型がdoubleだけとかありえん

262:デフォルトの名無しさん
12/11/11 21:05:09.61
普通のスクリプト言語としてもウンコ > 数値型がdoubleだけ

263:デフォルトの名無しさん
12/11/11 21:12:25.10
>>262
数値がdoubleだけってまじかよ。ありえんだろ。

264:デフォルトの名無しさん
12/11/11 21:15:12.40
luaとかもそうだよ
32ビットに収まるうちは整数の誤差は出ないから大して問題ない
中間言語としては終わってるけど

265:デフォルトの名無しさん
12/11/11 22:21:54.78
だよな
いまどきfloatとの使い分けくらい出来ないとな
ほんと腐ってるよ

266:デフォルトの名無しさん
12/11/11 22:47:53.61
CのプログラムもJavascriptに変換してブラウザで実行出来る時代だぜ。
Emscripten + Chromeより速い言語処理系作れる奴なんてほとんどいないぜ?

267:デフォルトの名無しさん
12/11/11 22:52:37.33
それで速いなら組み込みのshortとかlongとかfloatとか使えたらもっと遥かに速いぜ?

268:デフォルトの名無しさん
12/11/11 22:55:12.22
GoogleのDartだってそういうのいちいちエミュレーションするのアホらしいから
独自のVMを搭載してるのに

269:デフォルトの名無しさん
12/11/11 22:55:53.05
既にJITに全て任せる時代。

270:デフォルトの名無しさん
12/11/11 22:57:19.87
NaClですね

271:デフォルトの名無しさん
12/11/11 22:59:18.05
>>269
JITに任せたらJSでエミュレーションしてる64ビット整数の演算がハードウェア命令になるのか?w

272:デフォルトの名無しさん
12/11/11 23:07:12.60
JavaScriptを中間コードとして使うときのコードの出力の仕方を標準化してしまって
それに基づいて処理すれば完璧な最適化が可能だろうけど
それやるとJavaScriptの意味が皆無だからな
JavaScript無関係に新しくWebVMみたいなのを策定して載せるのと何も変わらない

273:デフォルトの名無しさん
12/11/11 23:07:36.29
一度Emscriptenのコードを読んでみると良い

274:デフォルトの名無しさん
12/11/11 23:09:32.73
NaClですね

275:デフォルトの名無しさん
12/11/11 23:09:59.11
>>273
思いっきりエミュレーションしてるがな
add一つに何行コード書いてるんだよw

276:デフォルトの名無しさん
12/11/11 23:52:44.79
floatやshortはまだ我慢できるがbyte/int32/int64が無いのはだいぶ辛い

277:デフォルトの名無しさん
12/11/12 01:11:39.10
unsignedも無いの?

278:デフォルトの名無しさん
12/11/12 01:16:13.46
unsignedはいらんよ
実質同じなんだから

279:デフォルトの名無しさん
12/11/12 04:04:19.31
>>276
ランタイムの実装依存だけど、TypedArray あるじゃん

280:デフォルトの名無しさん
12/11/12 05:56:17.30
int32はあると思っていい

281:デフォルトの名無しさん
12/11/12 10:47:29.84
実用上はint32はあると思っていいけど
オーバーフローしたら勝手にdoubleに化けたりするから
中間言語として使うのであれば結局単純に+をJavaScriptの+に変換するわけにはいかない罠

282:デフォルトの名無しさん
12/11/12 11:22:02.82
>>281
元の言語でのオーバフローしたときの挙動と同じでなければいけないってこと?
それなら、たとえJavaScriptにint32が存在してたとしても、
そのint32のオーバーフロー時の挙動が元の言語の挙動と違う可能性があるんだから、
そのまま+をJavaScriptの+に変換できない可能性があるってことになるよね?

283:デフォルトの名無しさん
12/11/12 20:24:35.99
>>281
中間言語とかなぜ出てきたかわからんが、厳密に規約でビット長他決められてるやん

284:デフォルトの名無しさん
12/11/13 12:41:04.95
このスレでなぜ出てきたかわからんというのがわからん

285:デフォルトの名無しさん
12/11/13 18:54:04.52
使ってみたいからExpressにプラグイン入れたんだけど
新規ファイルでtsはでてきたんだけどソースの色とか変わらないのは仕様なのかな?
Expressだと駄目?

286:デフォルトの名無しさん
12/11/13 22:52:53.79
Express for Webで使えてるけど

287:デフォルトの名無しさん
12/11/13 22:55:31.35
あれ?じゃインストールに失敗してるのかもやり直してきます
ども

288:デフォルトの名無しさん
12/11/14 02:12:21.09
別の人だけど、VS Express 2012 for WebにTypeScript for VS 2012入れたら
新しいプロジェクト➡テンプレート➡VisualC#➡HTML Application with TypeScript
というのが出てきた。

289:デフォルトの名無しさん
12/11/14 10:09:34.19
JavaScriptのようなクソレガシーに今後10年しばらく好き放題されると思うと
うんざりするから、.NETあたりにでも頑張ってほしい(´・ω・`)
速度特性のまったく読めない動的言語を基盤にしようなどと言い出した連中を死刑にしたいマジで

>>266
> Emscripten + Chromeより速い言語処理系作れる奴なんてほとんどいないぜ?

Emscriptenが速いなんて勘違いがどっから出てくるんだよ。
つかChromeではさらに遅いぞ。作ってるのMozillaの中の人だから全然Chromeに最適化されてねえ。

290:デフォルトの名無しさん
12/11/14 10:15:24.69
だいたいLLVM→JavaScript変換なんぞまわりくどい真似やってる暇があったら最初からネイティブで出すわw
特にMozillaがドヤ顔でデモってるような3Dゲームとかさ。
(あれオリジナルの10倍フレームレート低いらしいな)

C++や他の言語でもマルチ開発ができる、
実際多数のアプリケーションがやってるということが最近忘れられがちっつーか
ウェブ界隈の連中は最初から知らないんじゃねえかとすら疑ってる(´・ω・`)

291:デフォルトの名無しさん
12/11/14 10:18:25.07
PC以外もターゲットにするならネイティブ(Monoみたいなのも含めて)の方が
ずっとクロスプラットフォームだしな

292:デフォルトの名無しさん
12/11/15 16:44:21.21
まあ今後はJavascript優勢になるのは間違いないよ。

293:デフォルトの名無しさん
12/11/15 16:52:42.86
Googleさんが全力で阻止してくれます

294:デフォルトの名無しさん
12/11/15 17:06:46.63
>>289
黙れクズw
悔しかったらブラウザウィンドウ上で動くJSより素晴らしい言語とやらを作れよw

295:デフォルトの名無しさん
12/11/15 17:17:58.33
CIL

296:デフォルトの名無しさん
12/11/15 17:31:29.29
lljs.orgですねわかります

297:デフォルトの名無しさん
12/11/16 16:31:48.18
今時何にそんな速度が必要なんだ?お前ら

298:デフォルトの名無しさん
12/11/16 17:11:53.17
ChromeOSですよ、お前さん。

299:デフォルトの名無しさん
12/11/17 11:15:57.72
死ねゴミ共が
死ねゴミ共が
死ねゴミ共が
死ねゴミ共が

300:デフォルトの名無しさん
12/11/25 17:30:36.83
a

301:デフォルトの名無しさん
12/12/06 17:23:30.55
すっかり勢いなくなったな。
使ってる奴いないのかな

302:デフォルトの名無しさん
12/12/06 21:11:42.70
goのときと同じ流れ

303:デフォルトの名無しさん
12/12/06 21:36:17.41
書いてるが良くも悪くも普通
ある程度の規模になりそうなコードに使って素のJSよりいくらか楽になるくらい

304:デフォルトの名無しさん
12/12/12 19:24:34.39
個人的には好きだけど
Javaっぽい文法なんで、C#、ActionScript、Java、Haxe辺りは変換できそう
そういえば、ABAさんがそんなことを書いていたような

305:デフォルトの名無しさん
12/12/19 04:39:42.12
>>290
>だいたいLLVM→JavaScript変換なんぞまわりくどい真似やってる暇があったら最初からネイティブで出すわw
既成コードの使いまわす為だろうし、
まともなクロスプラットフォームなツールなんて実際のところjavaしかない

306:デフォルトの名無しさん
12/12/31 17:51:30.87
(゚∀゚)アヒャ
URLリンク(www.sellsbrothers.com)

307:デフォルトの名無しさん
12/12/31 19:54:44.96
Win8ストアアプリでTypeScriptはないだろう。C#でいいわ。
Node.jsベースでTypeScript用のMVCフレームワークとかの方が受けると思う。

308:デフォルトの名無しさん
13/01/11 08:19:27.67
>>297
> 今時何にそんな速度が必要なんだ?お前ら

お前それサバンナでも同じ事言えんの?
たとえばこういう仕事をしている開発者たちの前で↓

スクエニ、「スクウェア・エニックス オープンカンファレンス 2012」。「Agni's Philosophy」の舞台裏を明らかにする“技術編” - GAME Watch
URLリンク(game.watch.impress.co.jp)
4Gamer.net ― 次世代ゲーム機のグラフィックスはどうなる? CEDEC 2012 ゲーム開発マニアックス~グラフィックス編
URLリンク(www.4gamer.net)

他にも科学技術計算だのビッグデータ()だの
いくらプロセッサをフルにぶん回しても全然足りんような分野がまだあるだろ。

正直、コンピュータの速度はもう十分だの、HTML5がnative置き換えるだの言う奴らは
その程度の仕事しかしていない、とまでは言わないにせよ
まだまだ解決するべき大きな問題が存在すること す ら も 知らないのがバレバレなんだよなーと
憐憫の目で見てる(´・ω・`) 視野せめぇ。

>>307
C#は興味深い流れになっとるよね。

309:デフォルトの名無しさん
13/01/11 08:29:49.69
nativeの世界には、CPU全コアフルロードになるコード書いて
タスクマネージャ眺めて喜んでるような変態がいるんだぜ(´・ω・`)

310:デフォルトの名無しさん
13/01/11 09:20:58.30
暇人乙

311:デフォルトの名無しさん
13/01/11 16:24:50.41
>>308
> HTML5がnative置き換えるだの言う奴らは
> その程度の仕事しかしていない

それも視野狭窄だわな。

312:デフォルトの名無しさん
13/01/13 11:42:45.55
科学技術計算なんてループぶん回して配列にアクセスしまくるだけなんだから
スクリプト言語くらい楽に書けて普通のネイティブコードが吐けてFortranと同じくらい速い言語があってもいいのに
Fortranに対するTypeScriptみたいなの作れないかな

313:デフォルトの名無しさん
13/01/13 12:34:31.97
Fortressとかx10とかあるじゃん

314:デフォルトの名無しさん
13/01/15 12:20:49.20
TypeScriptで分数クラスを作ってみた。
楽しい。

315:デフォルトの名無しさん
13/01/15 12:27:55.49
gist.github.com/4520496
書いたソース。
忍法帳ってなんだこれめんどくさい。

316:デフォルトの名無しさん
13/01/15 12:32:50.69
TypeScriptで演算子のオーバーライドって実装されるんだろうか?

317:デフォルトの名無しさん
13/01/15 13:20:12.64
Andersは演算子は対称であるべきだからstaticにしろ派だから難しいんじゃないかな。
現に、インスタンスメンバにするのが自然な()や[]には対応してる。
手っ取り早く実装するなら+などもインスタンスメンバにするのが楽だけど、それは気に入らないんだろ。
でもC#みたいにクラスメンバにすると静的解析に依存することになるから、
オペランドの型がコンパイル時に分かってる場合と分かってない場合で
演算子の動作が変わってもいいのかとかいろいろ問題がありそう。

318:デフォルトの名無しさん
13/01/15 13:50:04.10
仮にインスタンスメンバでも、
hoge + 1 (TS) を hoge.opAdd(1) (JS) に変換するのはhogeの型がプリミティブ型でないことが
静的解析で分かってるならいいけど、分からない場合は hoge + 1 (JS)にするしかないから
結局静的解析の可否で挙動が変わってしまう
無理だな

319: 忍法帖【Lv=2,xxxP】(1+0:5)
13/01/15 19:03:58.21
即時関数の書き方教えて

320:デフォルトの名無しさん
13/01/15 20:59:16.21
その辺の非tsな外部jsを読み込むこととかできるの?

321:デフォルトの名無しさん
13/01/15 22:33:04.63
>>319
(()=>{alert("a");})();
>>320
普通にできるというかtsから変換したjsと普通のjsを普通にHTMLのscriptタグに並べるだけ
型チェックを活かしたいならインターフェイスを定義する

322: 忍法帖【Lv=2,xxxP】(1+0:5)
13/01/16 11:23:36.38
>>321
さんくす!後でやってみる!

323:デフォルトの名無しさん
13/01/16 13:25:03.90
typescriptを使うことでどのくらいコード量が減るかサンプル見たいのかける天才いる?

324:デフォルトの名無しさん
13/01/16 14:42:50.94
>>323
コード量はそんなに変わらんだろ?
CoffeeScriptなんかとは違うんだぞ。

325:デフォルトの名無しさん
13/01/16 15:02:00.76
公式ページのPlaygroundのサンプルコードで十分だろ。
TypeScriptが吐くコードは人間が書いたのと見分け付かん。
コード量はそう変わらんがJavaScriptでクラス作るときの
変なバッドノウハウによるノイズが無くなる。

326:デフォルトの名無しさん
13/01/16 18:34:00.59
ヘルスバーグもここまでか、、、

327:デフォルトの名無しさん
13/01/17 07:05:00.82
仕様策定はまだ続いてるが、既にMSのJavascript開発で
工数削減に役立ってるってのがすげーよな

328:デフォルトの名無しさん
13/01/18 21:26:48.39
こんなのがでてたのか・・・
javascriptは毛嫌いでやらなかったが、これならおぼえたいと思ってしまった。

329: 忍法帖【Lv=3,xxxP】(1+0:5)
13/01/20 16:38:16.14
>>321
Supplied parameter do not muchなんちゃらってなったよ……

330:デフォルトの名無しさん
13/01/21 15:29:22.68
WebGL.d.ts
Three.d.ts
既にあるな
考えることはみんな同じなんだ

331:デフォルトの名無しさん
13/01/21 17:02:59.97
アンダース氏が設計した新言語による次世代JavaScript開発とは?
URLリンク(www.atmarkit.co.jp)

332:デフォルトの名無しさん
13/01/21 17:33:01.79
Visual Studio 2012 入れなくても使えるようになったら使う

333:デフォルトの名無しさん
13/01/21 17:34:53.08
Node.jsで動くコンパイラとemacsプラグインが提供されてる

334:デフォルトの名無しさん
13/01/21 20:26:22.63
そもそもTypeScriptはNodejsで動かすものであってVisual Studio 2012対応はついで。

335:デフォルトの名無しさん
13/01/22 01:44:49.47
>>308
本当に簡単なレベルのことで金儲けできた方がいいじゃない
そんなにプロセッサをブンブン振り回したりしたら、地球環境に優しくないよ
その昔、ファミコンレベルの演算能力で月まで行けたんだから、
もっと低次元なレベルで解決できる問題なんて沢山あるじゃない

336:デフォルトの名無しさん
13/01/22 01:46:31.89
ていうか、5年ぐらい前ってM$のIEがweb屋たちに叩かれまくってよね

337:デフォルトの名無しさん
13/01/22 12:41:06.54
>>333
ありがとう
それなら手を出してみる

338:デフォルトの名無しさん
13/01/22 16:29:00.89
typescriptのサイトのget itページ行けば、node.jsの方が先に書いてあるんだけどな。

339:デフォルトの名無しさん
13/01/22 16:34:27.49
UTF-8 で書いたソースで
console.log('漢字');
を Windows の cmd.exe で実行すると
cp932 で出力されてるっぽいんだけど
どこで何が行われているの?
日本語の扱いは良きに計らってくれるの?

340:デフォルトの名無しさん
13/01/22 16:37:14.99
誤爆?

341:デフォルトの名無しさん
13/01/22 21:21:29.29
URLリンク(d.hatena.ne.jp)

342:デフォルトの名無しさん
13/01/23 00:42:59.48
モジュール化って可能なん?
AMDみたいのはいやづら

343:デフォルトの名無しさん
13/01/23 21:16:11.05
>>342
モジュールの定義には対応しているが、Javascript自体に存在しないので
Javascript上でよく見られるモジュール定義もどきとして書き出される。
node.js互換の形で。

344:デフォルトの名無しさん
13/01/24 18:34:42.38
TypeScriptは結局JavaScriptの問題を解決してないから萎えた。
ECMAScriptもだが、特にmodule、あれで大規模開発が可能だと本当に思ってるのか。

> 3. 次に挙げる ES4 の提案の一部はウェブでの利用において不適切と判断されたので、
> 今後二度と議題として取り扱わない。パッケージ、名前空間、早期束縛。この決定が
> Harmony の肝である。

つくづくバカな決定したなこいつら。

正直、断言するけどActionScript=ECMAScript 4ルーツのHaxeを使ったほうがいい。

345:デフォルトの名無しさん
13/01/24 18:35:48.71
TypeScript クイックガイド - phyzkit.net
URLリンク(phyzkit.net)

> この b2Vec2 クラスを使うときは、
>
> var v : Box2D.Dynamics.b2Vec2 = new Box2D.Dynamics.b2Vec2();
> のようにかけます。ただこのままではすべての場所で完全名でクラスを参照しなければならず、面倒です。
> そこでクラスのエイリアスが欲しくなるわけですが、JavaScript のように単なる変数としてエイリアスを
> 定義してもうまくいきません。
>
> // b2Vec2 のエイリアスのつもり……
> var b2Vec2 = Box2D.Dynamics.b2Vec2;
>
> // コンパイルエラー。b2Vec2 というコンストラクタはあっても b2Vec2 という型はない
> var v : b2Vec2 = new b2Vec2();
> コンストラクタの呼び出しだけならできるのですが、b2Vec2 は単なる変数で型の名前空間にあるわけではなく、
> 型注釈の位置では使うことができません。かと言って直接クラス名のエイリアスを定義する機能はないようです。
> このような場合、import キーワードでモジュールのエイリアスを定義することはできるので、これを使うと
> 少しは楽なのではないかと思います。
>
> import B2D = Box2D.Dynamics;
> var v : B2D.b2Vec2 = new B2D.b2Vec2();

これを読んでTypeScriptは却下した。アホだろ実際。癖のなくなったCoffeeScriptでしかない。
なおHaxeは普通にimportすればnew b2Vec2()でおk

あとはこれも萎え要因

URLリンク(sites.google.com)
> 「/// <reference path="" />の参照指定はあくまでもコンパイル時のもので、
> 実行時の依存関係の解決は君自身の責務だよ」

346:デフォルトの名無しさん
13/01/24 18:40:53.35
>>344
大規模開発支援より既に広まってる処理系群との互換性が大切
というのがECMAScript、というかアイクの公式見解。
ただ将来的にECMAScript 4の方向が否定されたわけではない。

347:デフォルトの名無しさん
13/01/24 20:44:56.21
>>343
それがAMDだ

348:デフォルトの名無しさん
13/01/24 20:53:13.10
>>345
こんなふうには書ける。
module M
{
 export interface P { x: number; y: number; }
 export var a = 1;
}
var p: M.P; // Used as ModuleName
var m: M = M; // Used as TypeName and PrimaryExpression
var x1 = M.a; // Used as PrimaryExpression
var x2 = m.a; // Same as M.a var q: m.P; // Error

そもそもnode.jsは自前でmodule機構を持ってるから大して困らないよ。

349:デフォルトの名無しさん
13/01/25 17:30:54.47
CofeeScript のスレはありますか?

350:デフォルトの名無しさん
13/01/25 17:34:49.08
聞く前に検索ぐらいしろ

351:デフォルトの名無しさん
13/01/25 17:44:22.96
>>348
TypeScriptのこと何にも知らないけど、一つだけ言える。

そのコロン、キモイ。

352:デフォルトの名無しさん
13/01/25 17:54:45.58
>>351
プログラミング言語を能力でなく感情でしか語れないのは悲しいね。
少なくともJScript.NETよりは遥かにスマートだと思うよ。

353:デフォルトの名無しさん
13/01/25 18:07:47.42
>>352
> var m: M = M;

俺には無理だわ。

354:デフォルトの名無しさん
13/01/25 19:49:38.54
きもっ

355:デフォルトの名無しさん
13/01/27 01:34:33.18
>>353
お前の個人的な感情とかどうでもいいんで。帰って。どうぞ。

356:デフォルトの名無しさん
13/01/28 14:54:47.56
個人的な感想ということにしたいんですね

357:デフォルトの名無しさん
13/01/28 17:37:07.24
>>348
pascalみたいや

358:デフォルトの名無しさん
13/01/28 17:42:07.96
俺もTypeScriptは知らんけど、「変数名 : 型」「変数名 : 型 = 値/interface closure」あたりまでは想像できるが、
var m: M = M;の意味がわからんな。

359:デフォルトの名無しさん
13/01/28 18:07:19.98
書いてて楽しくない言語は駄目だ
Matz

360:デフォルトの名無しさん
13/01/28 22:03:06.92
Rubyは書いていて楽しくない。
単純な誤字脱字がその場で検出できない。

実行してエラーになって初めて認識できる。
その頃には違うコードを見てるから
くだらない誤字脱字の場所を探さなければならない。

361:デフォルトの名無しさん
13/01/28 22:04:04.86
Rubyは楽しくない。
簡単なリファクタリングでさえ神経を使う。

範囲を選択し、場所を移動する。
頭ですぐに思いついたことを
すぐに実行できない。

362:デフォルトの名無しさん
13/01/28 22:59:06.84
プログラミングの大部分が
コードを右から左へ動かすことに終始する
ダメプログラマにとっては死活問題だね。
そういうウンコプログラマ用の言語じゃないんだRubyは。

363:デフォルトの名無しさん
13/01/28 23:25:07.33
var m:M = M;の後ろのMはMのsingleton moduleになるらしい。
そう定義されたmも同じ。だからm.aはmoduleローカル変数のように振る舞う。

364:デフォルトの名無しさん
13/01/29 10:50:56.61
>>362
ダメプログラマ御用達のRailsがなかったら消滅してる言語のくせにw

365:デフォルトの名無しさん
13/01/29 10:54:20.21
node.js + coffeescript + express で Ruby も Rails も要らなくなりそうな悪寒

366:デフォルトの名無しさん
13/01/30 01:00:10.97
node.jsはウェブサーバーとしてはまだサーバー全体が
死ぬリスクが高いから商用としては微妙だけど、
C4K問題が発生しない設計だから
汎用じゃなくて専用のサーバーとしては十分ありだよね。

大規模なソフトウェアこそTypeScriptが生きる。

367:デフォルトの名無しさん
13/01/30 02:28:35.12
> node.jsはウェブサーバーとしてはまだサーバー全体が
> 死ぬリスクが高いから商用としては微妙だけど、

それそうとう技術力低いだろw
例外の使い方の基礎さえ知ってれば
落ちることはない。

368:デフォルトの名無しさん
13/01/30 02:29:57.39
あ、例外の基礎を知ってるっていうのは、
try-catchは必要最小限で十分ということを
知ってるって話な。

俺、try-catch使えるぜ!って感じで
やたらめったら入れる奴は
基礎がわかってない。

369:デフォルトの名無しさん
13/01/30 05:06:00.81
ONERRORGOTOですねわかります

370:デフォルトの名無しさん
13/01/30 10:35:04.25
nodes.jsが単一プロセス、単一スレッドで動いてるから
プログラムのミスや例外などで処理が止まるとサーバー自体も止まるという話なだけ。

nodejs側の問題なのでTypeScriptとは直接関係ない。

371:デフォルトの名無しさん
13/01/30 10:41:07.50
例外処理ちゃんとやってても落ちるもんは落ちる
ましてC++で拡張できたりするんだし

372:デフォルトの名無しさん
13/02/28 22:14:41.16
Windows8 64bit、VS2012 Express for Webでプラグイン導入できた人いる?
インストールしてもテンプレートに出てこない。。0.8.1.1、0.8.2で試した。
ちなみにWindows7(32bit)ではうまくいった。

373:デフォルトの名無しさん
13/02/28 22:23:26.87
ごめん解決した。
昨日0.8.3がリリースされてたみたいで、それ入れたら出てきた。

374:デフォルトの名無しさん
13/03/03 16:07:40.23
以前の奴でもインストールされたとこにあるプラグインを自分でクリックすれば
インストール出来た

375: 忍法帖【Lv=2,xxxP】(1+0:5)
13/03/10 00:04:31.42
Eclipseで使える?

376:デフォルトの名無しさん
13/03/16 17:59:38.77
Rubyが楽しいってデマ誰が広げたんだろうね

377:デフォルトの名無しさん
13/03/16 18:48:50.43
オレ

378:デフォルトの名無しさん
13/03/16 20:33:33.31
クラスを定義するときに同名のクラスが宣言されてるのはNGなの?例えるとこんな感じなんだけど
declare class Test { constructor(); }
class Test { constructor() {} }
下のコンストラクタで次のエラーが出る
Malformed function body (is this a class named the same as an existing interface?)

宣言ソースに必要なもの全部まとめようかと思ったんだけど、これがひっかかる

379:デフォルトの名無しさん
13/03/17 17:17:30.94
エラーメッセージが不親切だけど、基本的には単にクラス名の衝突だと思う。
class Test { constructor() {} } をコンパイル単位に含めるなら、
declare class Test { constructor(); } は必要ないよ。
それかもしかして C/C++ プロトタイプ宣言みたいな使いかたしてない?

380:デフォルトの名無しさん
13/03/17 17:32:44.12
>> 376
彼らは typo したり runtime error 出したり、半年前に自分が書いたコードが読めなくなって全部書き直したり、
クソ遅い処理系にほとんど意味のない最適化を施すのが、楽しくて仕方がないんだよ。
我々には理解できない性癖だけど。

381:デフォルトの名無しさん
13/03/17 17:41:44.97
>>379
.d.tsファイルの仕様的に、C++っぽく使えてもいいのになぁっていう感じでした
別にエラーにしてくれなくてもいいのに。C++だってリンクするまでは衝突するかどうかわからないんだし

382:デフォルトの名無しさん
13/03/17 18:21:46.95
>>381
TypeScript の declareは、C/C++ のプロトタイプ宣言というより extern に近いものだからね。C/C++ でも

extern void hoge(void){}
void hoge(void){}

が衝突するのと似たような理由だと思う。

383:デフォルトの名無しさん
13/03/17 18:30:21.10
あっ違うわ 
extern void hoge(void);
void hoge(void){}
は別に衝突しないや
最近 C/C++ 使ってないから忘れた

384:デフォルトの名無しさん
13/03/17 20:50:40.00
>>378
TypeScriptにおけるdeclareというのは
コンパイルするソースコード中にその定義が含まれない(既に外部で定義されている)ことを意味するから、
そのソースコード中にその実体を定義するのは言語仕様上矛盾している。

385:デフォルトの名無しさん
13/03/21 09:52:33.83
HTML5デモ「日本全国花粉飛散マップ」を作って分かった
CreateJSとTypeScriptでの効率的な開発手法
ICS LAB
URLリンク(htn.to)

386:デフォルトの名無しさん
13/03/28 17:27:02.10
javascript全く知らないんだけどtypescriptから始めても大丈夫?

387:デフォルトの名無しさん
13/03/28 17:44:57.14
大丈夫

388:デフォルトの名無しさん
13/03/28 20:27:05.61
情報が少なくて大変なだけだろ。JavaScriptからやれ。
TypeScriptはJavaScriptのスーパーセットだからJavaScriptは使えなければならない。

389:デフォルトの名無しさん
13/03/28 20:33:10.64
どっちやねん

390:デフォルトの名無しさん
13/03/28 20:35:45.88
大丈夫だが特にメリットがない、でFA
・JavaScriptの方が環境的な意味で遥かに学習しやすい
・JavaScriptから始めてTypeScriptに乗り換えても学んだことは厳密に100%活かせる

391:デフォルトの名無しさん
13/03/28 21:06:08.00
>>390
なるほ、資料少ないのは辛いな。じゃばすく覚えてからにするよサンクス

392:デフォルトの名無しさん
13/03/28 22:01:28.17
クラスやモジュールのような覚えなくても済むノウハウは結構あるから
さらっとJavaScript入門を流したらあとはTypeScriptでいいと思う

393:デフォルトの名無しさん
13/03/28 22:06:31.40
これ自体をやる必要があまりない。
東京人が地方の方言を真似するようなもの。内容は違わない。

394:デフォルトの名無しさん
13/03/28 22:14:55.65
ES6もあるし、やる必要ないなんてことは無いでしょ
コレ一本で行くってんなら別だろうけど

395:デフォルトの名無しさん
13/03/29 11:31:32.02
同じ事考えてたんだけど
やっぱりやるんならjavascriptからなのか・・・

396:デフォルトの名無しさん
13/03/29 14:38:18.50
やっと分かったJSのthis、みたいなブログの記事よく見るけど、もう頑張ってJSやらんでもTypeScriptでいいだろ。

397:デフォルトの名無しさん
13/03/29 14:54:17.77
いいだろうとかじゃなく
Javascriptなら基本から学ぶ教材がその辺にあるけど
TypeScriptの奴ってどこもJavascriptがわかってる事が前提の奴だよね
知らない人が学ぶのは不可能

398:デフォルトの名無しさん
13/03/29 15:34:07.31
JSがどうにもバッドノウハウだらけの言語だから、それを隠蔽すべくTypeScriptはじめ多数のベターJSがある。
バッドノウハウでも覚えた方がいいって考えもあるだろうけど、そんな暇あるなら別の勉強した方が良いと思う。

399:デフォルトの名無しさん
13/03/29 18:45:51.55
JavaScriptを最初の言語にするのには賛成しかねる
ほんとに最初ならJavaかC#あたりなんじゃない

400:デフォルトの名無しさん
13/03/29 23:41:45.72
JQueryとかで数行書いてるだけだったら別に要らないんだよ。

Javascriptでライブラリを書き始めたらありがたみもわかる。

401:デフォルトの名無しさん
13/03/30 09:47:55.91
Javascriptでライブラリを書く土方なんて居らんだろ
使い切りのクレクレ厨ならTypeScriptなんて不要

402:デフォルトの名無しさん
13/04/04 17:53:37.15
今日の釣堀
URLリンク(itpro.nikkeibp.co.jp)

403:デフォルトの名無しさん
13/04/04 22:37:31.68
知らない事を知らないと言えるのは大事だな

404:デフォルトの名無しさん
13/04/28 09:36:52.71
<reference path=" で探しに行くディレクトリを追加する方法はありますか?
../../lib/hogeとかあんまりやりたくないので

405:デフォルトの名無しさん
13/04/29 09:27:46.21
>>404
インポート用のファイルを用意してそれを参照するか、コンパイルオプションで対応するしかないね
当然後者ではIntelliSenseが効かない

まだまだ駆け出しだから足りないものは多いよ

406:デフォルトの名無しさん
13/04/29 11:25:33.76
0.9.0アルファ版を少し触った感想

BOM付きUTF-8では日本語が使えない。BOMなしUTF-8はOK、SJISはNG
Type[]はまだ使える。Arrayを拡張したい場合はinterface Array<T> { ...じゃないと駄目
構文チェックが厳格になった

407:デフォルトの名無しさん
13/04/30 11:07:25.77
関数のシグニチャ、レシーバー(コンテキスト?)の型を規定することはできんのね
あとScalaのtraitみたいのがほしいなー。多重継承でもいいからお願いしますMS様

408:デフォルトの名無しさん
13/04/30 12:17:01.31
目標はES6

409:デフォルトの名無しさん
13/04/30 15:19:48.08
boolでいいじゃん
booleanとかいちいち打つのだるいわ

410:デフォルトの名無しさん
13/05/05 11:25:44.32
ないなら作れよ

411:デフォルトの名無しさん
13/05/24 07:01:20.91
0.9.0のソース上がってるな

412:デフォルトの名無しさん
13/06/19 17:45:31.95
Announcing TypeScript 0.9
URLリンク(blogs.msdn.com)

413:デフォルトの名無しさん
13/06/19 20:33:35.85
TypeScript 0.9について語るAnders Hejlsbergらの動画
URLリンク(channel9.msdn.com)

414:デフォルトの名無しさん
13/06/20 08:01:00.31
ジェネリクスは大きいな

415:デフォルトの名無しさん
13/06/21 07:03:43.29
有名どころのライブラリ*.d.tsを大量配布してるサイトとかない?

416:デフォルトの名無しさん
13/06/21 09:12:19.28
URLリンク(github.com)
URLリンク(github.com)

こんなのあるよ

417:デフォルトの名無しさん
13/06/22 02:14:14.01
まじか。これはGJというほかないわ

418:デフォルトの名無しさん
13/06/22 10:46:36.28
テストはcoffeeでやろうかなあ
あんまり言語混ぜ混ぜもどうかと思うがtsでテスト書くのはちょっとだるい

419:デフォルトの名無しさん
13/06/22 11:54:03.62
>>416
ありがと、助かるわー

420:デフォルトの名無しさん
13/06/26 12:44:30.00
URLリンク(www.infoq.com)
URLリンク(funscript.info)

js を typescript の type providers で wrap して
その上に構築されたF#風言語らしいが…関数型言語好きやね

421:デフォルトの名無しさん
13/06/28 01:07:46.83 BE:50245643-PLT(18001)
Collection<Collection<...>> みたいな型表現をしようとすると
A generic type may not reference itself with a wrapped form of its own type parameters.
というエラーがでる・・・何でこんな制限あるんですかね・・・実装の都合?

422:デフォルトの名無しさん
13/06/28 08:32:18.10
前戯前に挿入するなってことじゃね?

423:デフォルトの名無しさん
13/08/09 NY:AN:NY.AN
Announcing 0.9.1
URLリンク(blogs.msdn.com)

超高速レビュー: TypeScript 0.9.1
URLリンク(teppeis.hatenablog.com)

424:421
13/08/10 NY:AN:NY.AN
入れ子型もいけるようになってたお

425:デフォルトの名無しさん
13/08/29 NY:AN:NY.AN
遅報だが

Announcing TypeScript 0.9.1.1
URLリンク(blogs.msdn.com)

TypeScript 0.9.1.1 リリース ~ v.0.9 からは待望の Generics がサポートに
URLリンク(blogs.msdn.com)

TypeScript 1.0 リリース間近 !? ~ Web Essentials 3.0 における TypeScript サポート削除について
URLリンク(blogs.msdn.com)

426:デフォルトの名無しさん
13/09/30 23:51:20.52
TypeScriptを始めたんで、スレを頭から見てるけど
>>129の下の関数は、
function g() : number { return ((x: number, y: any): number => x + y)(1, "2"); }
って書いてるのと同じ事だから、エラーにならずに12(number)っていう戻り値になるのは
問題無いよね。
教訓としては、型指定はどんな場所でも省略するなって事だね。
alias tsc='tsc --noImplicitAny'
ってすべきだ。

427:デフォルトの名無しさん
13/10/01 00:58:37.16
型チェックできないのはその理屈でいいけど動いてしまうのが問題だって話でしょ
いくら型指定するようにしていても、どうしても型なしで扱わざるを得ない部分は完全に無くなりはしない
結論としては、実行時に型チェックをするオプションが欲しい、でFA

428:デフォルトの名無しさん
13/10/01 01:48:24.89
assert(typeof a == "number");
とかを自分で書けばいいんじゃないかね。

429:デフォルトの名無しさん
13/10/01 22:31:49.92
Haskellあたりを見習って
もっと真面目に型推論をすれば解決

430:デフォルトの名無しさん
13/10/01 23:02:22.72
JavaScriptのコードが通らなくなるからムリ

431:デフォルトの名無しさん
13/10/01 23:32:22.09
>>426
> エラーにならずに12(number)っていう戻り値になるのは

でも実際は "12"(string) になるけどね

432:デフォルトの名無しさん
13/10/01 23:45:41.39
え、なにそれウンコじゃん
やっぱCoffeeScriptにしとくわ

433:デフォルトの名無しさん
13/10/02 00:09:46.78
まさに本末転倒w

434:デフォルトの名無しさん
13/10/02 00:35:41.01
>>431
function g() : number
なのに"12"(string)になるわけねーだろ!
コード書いて試してみれば一目瞭然。

435:デフォルトの名無しさん
13/10/02 06:56:10.44
JSは文字列と数を足した結果は文字列だし
TypeScriptは勝手にキャストしたりしないから
当然gの戻り値は文字列だよ
typeofで調べてみれば?

436:デフォルトの名無しさん
13/10/02 07:11:48.03
function g() : number { return ((x,y) => x + y)(1, "Hello World"); }
の戻り値は "1Hello World"

437:デフォルトの名無しさん
13/10/02 08:23:16.90
問題解決するためのイディオムでも考えたほうが建設的

438:デフォルトの名無しさん
13/10/02 09:03:59.82
解決策:あてにならない形注釈は捨てて
簡潔なコードを書くためにCoffeeScriptを使う

439:デフォルトの名無しさん
13/10/02 17:39:39.35
ただでさえJSerの無能率は高いのに
ドカタが好むエッセンスを振りかけたTypeScriptに
純度の高いバカが集まるのは必然だな

440:デフォルトの名無しさん
13/10/02 18:27:41.90
Coffee読みづらいわ
RubyやScalaを意識してるんだろうけど、あの手の省略大好き言語の中でも
ずば抜けてセンス悪い

441:デフォルトの名無しさん
13/10/02 18:37:36.83
ただでさえ意味不明になりがちなRuby/Scala系のスタイルに
さらにインデント記法を混ぜたのが大失敗
TypeScriptくらいかっちりしたのをそのままインデント記法にするか、
Ruby/Scalaみたいに他省略しまくりでもbegin/endだけは省略しないのが省略の限度だよ

442:デフォルトの名無しさん
13/10/02 21:27:06.14
具体的なコードで欠点を指摘できないと
単なる決めつけで終わってしまうね

443:デフォルトの名無しさん
13/10/02 22:47:27.75
変数の型と違う型の値が
簡単に入ってしまうのは地雷すぎる

これに比べれば大抵のことは許せる

444:434
13/10/03 00:48:08.20
うぐ…stringだた。
function g() : number { return ((x: number, y: any): number => x + y)(1, "2"); }
document.body.innerHTML = g();
で、
greeter.ts(13,1): error TS2011: Cannot convert 'number' to 'string'.
ていうエラーが出るからnumberだと思っとった。(document.body.innerHTML = String(g());はOK)

実際にtsc --noImplicitAnyで静的型チェックが通っても、anyが紛れてると信用ならなくなるって事だな。
こわいこわい。

tsc --noImplicitAnyしたあとanyでgrep(検索)までしないと駄目なのか…

445:デフォルトの名無しさん
13/10/03 00:50:52.12
>>435へのアンカーを忘れた

446:デフォルトの名無しさん
13/10/03 00:57:57.89
んなこと言い出したら既存JSライブラリに対する型宣言なんか全部当てにならんぞ
型が後付けである以上仕方のないことだし、それ故のメリットもある

447:デフォルトの名無しさん
13/10/03 02:33:05.42
ECMAScriptも7になれば静的型チェックは入るんだよな。
ただ、7がリリースされるのは2017とかだろうから、それまでにTypeScriptが駆逐する
可能性はある。IEがネイティブサポートしたら、その可能性は高まる。

448:デフォルトの名無しさん
13/10/03 16:10:49.88
静的型チェックで地雷とか、JavaScriptに何を求めてるんだろ

449:デフォルトの名無しさん
13/10/03 16:23:23.19
太いうんこ出た
きもちECMA

450:デフォルトの名無しさん
13/10/03 21:44:39.23
emscriptenやgwtやjs_of_ocamlのようなのだろ。

451:デフォルトの名無しさん
13/10/03 21:49:10.52
いや全然違うだろ
基本的にJavaScriptを中間コードとして扱わず、ほとんど型チェックを行うだけ
どっちかというとjshintの類だ

452:デフォルトの名無しさん
13/10/10 18:11:36.05
最新Windows用になったIEのネイティブサポートとかもう大局に影響しないだろ

453:デフォルトの名無しさん
13/10/11 00:30:48.83
TypeScriptはザックリ言うと、ES6に静的型チェックと(それ故に必要な)Genericsを追加したものだな。
良い言語だと思うけどね。

454:デフォルトの名無しさん
13/10/11 01:10:35.99
TypeScript、Haxe、Dartの三択だったらどれ?
CoffeeScriptはもうやってるんだけど、新しいのを覚えたい。

455:デフォルトの名無しさん
13/10/11 01:58:34.53
方向性がそれぞれ違うから用途と目的によるとしか。
ざっとググってみてもピンと来ないならTypeScriptでいいんじゃね

456:デフォルトの名無しさん
13/10/11 07:56:33.81
JavaScriptが大嫌いで無茶苦茶に汚してやりたいって人にはDart
監禁されて二人だけの世界で言いなりにされたいって人にはHaxe
どちらにも当てはまらない人にはTypeScript

457:デフォルトの名無しさん
13/10/11 09:53:28.96
JavaScriptは一斉排除だ!って環境ならなんでもいいよね
親和性を取るならTypeScriptは書きやすい

458:デフォルトの名無しさん
13/10/12 09:06:04.50
TypeScriptはVisualStudioで開発したら世界が変わるで。

記述ミスをビルド前に指摘してくれるのはうれしい。

459:デフォルトの名無しさん
13/10/12 09:44:08.17
VisualStudioでプロジェクト作らずに直接TSファイル開くと
依存関係から仮想プロジェクト機能が働くんだけど、これが便利すぎる

460:デフォルトの名無しさん
13/10/15 05:56:27.51
ざけんなよMac無視かよ

461:デフォルトの名無しさん
13/10/15 13:34:25.50
>460
WebStormがあるじゃないか!

462: ◆9Zst2CqO/Y
13/11/15 12:39:15.52
盛り上がってるね。

463:デフォルトの名無しさん
13/11/20 08:12:25.15
JavaScriptが超好き!覇権言語! → JavaScript

なんだかんだでJavaScriptの未来を信じてる。でも型チェックは欲しいお……
Visual Studio大好き! → TypeScript

「JavaScriptで大規模アプリを作るのはジョークだ」(言語設計者談)
つかブラウザ自体単なるコンパイルターゲットのひとつとしか見なしてない
なぜECMAScript4を捨てた。バカじゃねーの
関数型言語大好き! → Haxe

「JavaScriptは問題を抱えている」
JavaScriptなどいずれ滅ぼしてやる → Dart

C++サイコー!実用的な言語! → Emscripten

こんな感じ

TypeScriptかHaxeかというのがよく話題になるが、
ぶっちゃけJavaScriptが好きか嫌いかで選べば間違いないw

あとは我が道を行く闇のC++軍団。
なんだかんだで最終的にガチC++erはウェブでも一定勢力を占めそうだ。

464:デフォルトの名無しさん
13/11/20 08:21:22.89
JSXのことを完全に忘れていたのだがどうなったのだろう

465:デフォルトの名無しさん
13/11/20 21:42:03.04
クラスを定義するために宣言ファイルと定義ファイルを用意するとして
この定義ファイルから同宣言ファイルを参照すると面倒が起きやすい点がなんとかなればな
(一応大体の事は対応できるけども)

466:デフォルトの名無しさん
13/11/20 22:23:09.98
JSXはコンパイル後の出力が汚いだろ

467:デフォルトの名無しさん
13/11/21 01:51:19.26
Emscriptenでどの程度まで出来るのか今一分からんな。
DOMをいじれるのかとか

468:デフォルトの名無しさん
13/11/21 03:16:11.46
TypeScriptの => を使っても、結局イベントハンドラとかのthisのややこしさは
カバーしきれない感じなんだけど、Haxeはもっと上手くごまかしてるの?

469:デフォルトの名無しさん
13/11/21 08:23:31.53
>>467
URLリンク(github.com)
ヘッダー眺めればざっくりとは分かる

470:デフォルトの名無しさん
13/11/21 15:28:25.78
test

471: 忍法帖【Lv=6,xxxP】(2+0:5)
13/11/21 17:19:16.16
test

472:デフォルトの名無しさん
13/11/23 11:38:28.14
>>468
haxeは、クロージャの中でもレシーバー(this)は変更されない。
なので、jQuery.map()等で、クロージャでDOM要素に直接触る場合は、第二引数まで指定して受け取る必要がある。

これを面倒と取るか、シンプルさで混乱を避けているとるかは人それぞれ。

こじんてきにこのきょどうにふまんはないです。

473:デフォルトの名無しさん
13/12/06 23:10:29.06
0.9.5リリース上げ!
動作の安定化とビルド時間の短縮が主な変更点かな。

474:デフォルトの名無しさん
13/12/16 05:34:31.78
定数オーバーロードはstringしか出来ないのか。他のプリミティブも出来たらちょっと楽しそうなのに。
interface I{
 f(x:"A"):Alice;//可
 f(x:string):Person;
 g(x:2):Alice;//不可
 g(x:number):Person;
 h(x:true):Alice;//不可
 h(x:boolean):Person;
}

475:デフォルトの名無しさん
14/01/07 20:26:38.95
今年は1.0くるかね

476:デフォルトの名無しさん
14/01/08 10:26:43.50
試しにTypeScriptでMongoDBのクエリを解釈するサンプルを作ってみた。
URLリンク(github.com)

$where でfunctionを直接クエリとして渡す部分があって
そのcallbackのthisは検索中のdocになるから
JavaScriptやTypeScriptだと問題ないけど
Haxeだと面倒なのかな?(よう知らん)

class QuerySelectorで様々なoperatorをobjectにぶち込んで
operators["$where"](...) などの形で呼び出せるように工夫してみたけど、
staticメソッドだとうまく記述できなかったので通常のメソッドにせざるを得なかった。

お陰でvar self = this; なんて回避コードがときどき必要になるね。

477:デフォルトの名無しさん
14/02/01 09:36:07.23
TypeScriptとES6の関係がわからない。
ES6が普及したら いらない子になっちゃうの?
誰か背中を押してくれ

478:デフォルトの名無しさん
14/02/01 11:17:58.87
ES6なんてまだ現実的な話じゃないけど、そこで悩むくらいならC++かDartあたり選ぶんじゃないか

479:デフォルトの名無しさん
14/02/02 00:52:15.85
URLリンク(typescript.codeplex.com)
URLリンク(teppeis.hatenablog.com)

あまり調べてないがTSレベルの静的型付けはES6になさそうだから、
IDE支援使う分にはTSの方が便利のままなんじゃないかと。

ES6に変換出来るようにするみたいだし、潰しは効くんじゃないか。

480:デフォルトの名無しさん
14/02/02 12:27:45.35
>>479
なるほどー

481:デフォルトの名無しさん
14/02/21 03:07:42.97
なんか NodeBufferの型が存在しないって Windowsでだけワーニングが出るけどこれどうしたらいいん?
Unix上では問題ないみたい。

E:/Home/src/typescript/pmx/node.d.ts (98,9): Expected ';'
E:/Home/src/typescript/pmx/pmx.ts(26,17): The name 'Buffer' does not exist in the current scope
E:/Home/src/typescript/pmx/pmx.ts(35,17): The name 'NodeBuffer' does not exist in the current scope
E:/Home/src/typescript/pmx/pmx.ts(44,17): The name 'NodeBuffer' does not exist in the current scope
E:/Home/src/typescript/pmx/pmx.ts(53,17): The name 'NodeBuffer' does not exist in the current scope
(以下略)

最新のnode.d.tsをカレントに置いて
///<reference path="./node.d.ts" />
してある。

482:デフォルトの名無しさん
14/02/21 22:08:33.50
-dオプションで.d.tsファイルが作れるのはすごく便利なんだけど
参照ファイルも全部記述してくれるせいで.d.ts側には必要ないものまで参照しちゃうな

その.ts内だけで使える/// <reference同等の参照があればいいんだけどな
複数ファイルをまとめてコンパイルした時に他のファイルには影響が出ないようならなお良い

483:481
14/02/22 03:56:10.70
上のエラーだが、とんでもない原因だった。

nodejs本体はときどき入れ替えて最新のを使ってるんだが、
VisualStudio用のnodejsが古いままで、PATHに含まれてたのが原因で誤動作してた。

これは気づかんで……。

484:デフォルトの名無しさん
14/02/22 11:11:21.74
馬鹿には無理

485:デフォルトの名無しさん
14/02/22 18:28:02.50
> Initial commit of TypeScript 1.0 made to codeplex on Feb 20.
> Branched as release-1.0 too. Hoping RTM is next week.

486:デフォルトの名無しさん
14/02/22 19:54:29.18
うおおおはやく発展しろおおおおお
みんな使おうぜええええええ
Coffee構文に対応したコンパイラとか出てこないかな
もはや別言語か

487:デフォルトの名無しさん
14/02/22 22:43:38.36
0.9.5が出てからぱったり更新が止まったな

488:デフォルトの名無しさん
14/02/23 03:41:31.24
0.9.7についてのドキュメントが出てきてる。

489:デフォルトの名無しさん
14/02/26 10:39:45.40
URLリンク(blogs.msdn.com)
TypeScript 1.0 RCが出たよ。

あと、
> We are also now adding TypeScript support into the Visual Studio 2013 product, starting with Update 2.

490:デフォルトの名無しさん
14/02/26 21:09:18.22
おおー きたー

491:デフォルトの名無しさん
14/02/27 00:02:02.15
コンストラクタを見せかけだけでいいから非公開にしたいんだけど
private constructorがコンパイルエラーなのがつらい
面倒になるから出来る限り宣言ソースは直に触れたくないんだよなぁ

492:デフォルトの名無しさん
14/02/27 10:19:24.32
>>491
それは仕様バグなのか何らかのポリシーなのかわからんね。

493:デフォルトの名無しさん
14/02/27 17:33:27.83
JavaScriptの仕様上コンストラクタの隠蔽だけは実現不可能だからだろうね
今のところ非公開要素のコンパイル後のコードはオープンな状態だし、許容してくれるようになればいいんだけど

494:デフォルトの名無しさん
14/02/28 08:51:22.72
>>489
何が変わるんでしょ
なんだかんだ言いながら0.9.5で使えてるわ

495:デフォルトの名無しさん
14/02/28 21:00:55.04
1.0RC関連
URLリンク(blogs.msdn.com)
URLリンク(www.forest.impress.co.jp)

496:デフォルトの名無しさん
14/03/05 23:38:03.33
出力コードの最適化は来ないのかな
言語レベルの定数とかインライン展開でClosureコンパイラで手がまわらない所まで最適化したい

497:デフォルトの名無しさん
14/03/05 23:41:36.34
たぶん出力jsの可読性考えてやってないんじゃない?
jsxとかあるから技術的には可能だと思うし

498:デフォルトの名無しさん
14/03/06 01:46:21.89
>>496
mixinとかってこと?

499:デフォルトの名無しさん
14/03/07 12:42:27.55
Eclipseのプラグイン使ってみたけど
VisualStudioに比べてインテリセンスが死ぬこともないしアウトラインも機能してる
エディターの色分けがまだ変えられないのと、宣言ファイルもソースフォルダの中に無いといけないのがちょっと不便
ファイル関係のことはリンクでカバーできるからまだ良し

500:デフォルトの名無しさん
14/03/08 22:23:28.49
vs2013 + 1.0RCでプロジェクト作っていくつかTSファイル用意するとIntelliSenseもコード補完も効かなくなる
試しにプロジェクト作らずにそれらのTSファイル全部開いて、仮想プロジェクト上でやったら問題無いとかどういうことなん
プロジェクト作っちゃいかんのか

501:デフォルトの名無しさん
14/03/19 08:57:18.73 BRRvET2J
>>500
システム中にnodejsが複数バージョンあると競合することがあるから注意な。

502:デフォルトの名無しさん
14/04/03 12:41:06.17 UmXBHM51
TypeScript 1.0がリリースされた件について
URLリンク(blogs.msdn.com)

503:デフォルトの名無しさん
14/04/03 18:18:25.19 WU6I69c7
うほっ

504:デフォルトの名無しさん
14/04/03 22:10:55.66 PIEAAVmi
>>224
なせま、すばらしい言語は作れるのに、すばらしいOSが作れないのか?

505:デフォルトの名無しさん
14/04/03 22:31:57.98 KPZTHiBY
OSは、したばたらき。えんのしたのちからもち

506:デフォルトの名無しさん
14/04/03 22:52:57.68 8aaFlPVZ
きたかー

507: ◆9Zst2CqO/Y
14/04/03 22:53:53.75 PIEAAVmi
感慨深いです。

508:デフォルトの名無しさん
14/04/06 11:48:59.26 /BRp7uTK
Microsoft、プログラミング言語“TypeScript”を正式リリース
URLリンク(www.forest.impress.co.jp)

509:デフォルトの名無しさん
14/04/06 15:20:08.24 oIpNwxzQ
“TypeScript”は、“JavaScript”へ静的型付け、クラス、モジュールといった機能を追加し、
多くのコンポーネントから成る大規模アプリケーションの開発に耐えうるものへ拡張

510:デフォルトの名無しさん
14/04/06 21:51:24.11 axgq2NYC
TypeScriptでRequirejs使うのって何を意図してんの?
外部モジュールやreference path じゃ不都合の出るケースがあるの?

511:デフォルトの名無しさん
14/04/07 09:23:58.16 cwHyx0pR
全てTypeScriptで成り立つなら使う必要はないかもしれないけど
参照以外はJavaScriptが相手だしな

512:デフォルトの名無しさん
14/04/08 21:37:16.18 LxQtwqh5
Arrayのconcatに値と配列を一緒に渡せるようにするのは今の仕様じゃ無理か
concat(...items: T or Array<T>)
みたいなややこしいもの実装するくらいならコード見直すなりキャストするなりした方がいいな

513:デフォルトの名無しさん
14/04/10 13:20:53.14 WQWEMg7U
アクセサのget と setあるじゃん
これらのアクセサでインターフェイス作りたいときはどう書けばいいのでしょうか?
詳しい方教えてださい

interface Person{
get name() : string;
set name(value : string);
}

のようなかんじなんでしょうか?

514:デフォルトの名無しさん
14/04/10 17:14:13.01 S1KIIA4W
.d.ts吐かせてみたらname: string;になったよ
使う側にしてみれば確かにそうだよな

515:デフォルトの名無しさん
14/05/07 03:11:06.78 Dx88WsDJ
>>513

interface Person {
name: string;
}

class MyPerson implements Person {
public get name(): string { ... }
public set name(value: string) { ... }
}

516:デフォルトの名無しさん
14/05/07 10:07:21.61 ev+R2l3t
yieldやawaitが早くほしい


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch