TypeScript part1

このエントリーをはてなブックマークに追加
1 ◆9Zst2CqO/Y
http://www.typescriptlang.org/

TypeScript is a language for application-scale JavaScript development.
TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.
Any browser. Any host. Any OS. Open Source.
2デフォルトの名無しさん:2012/10/03(水) 00:08:43.70
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。

                  京都大学霊長類研究所
3デフォルトの名無しさん:2012/10/03(水) 00:19:25.17
これは期待
VSだけじゃなく他のIDE用のプラグインも用意してもらいたい
4デフォルトの名無しさん:2012/10/03(水) 00:30:34.96
言語そのものは、普通だと思っているけど、
Microsoftって、開発環境の品質はいいんだよ。

Visual Studioに自然な感じで統合されると思うな。
5デフォルトの名無しさん:2012/10/03(水) 00:44:06.13
>>3
なんでMSがEclipseとかXcodeみたいなクソのためにそんなもんを用意せにゃならんのだ?
6デフォルトの名無しさん:2012/10/03(水) 01:25:26.25
なんかさ・・・全然騒がれていないけどさ・・・これって・・これって・・・
と て つ も な く 凄 く ね ?
歴史が動く瞬間に立ち会っちゃったかも・・・
7デフォルトの名無しさん:2012/10/03(水) 02:00:32.70
何が凄いのか全く分からん。
8デフォルトの名無しさん:2012/10/03(水) 02:03:29.49
パッと見、相当凄いが
9デフォルトの名無しさん:2012/10/03(水) 02:06:29.02
標準JavaScriptをベースにしているって所が
凄いじゃないかな。
10:2012/10/03(水) 02:08:33.86
すごさが全然わかりません
Coofee Scripterにもよくわかるように教えてください
11デフォルトの名無しさん:2012/10/03(水) 02:11:39.87
コーヒースクリプトは
何もえるものがないからなぁ。
少し書き方が変わっただけ。
12デフォルトの名無しさん:2012/10/03(水) 02:18:55.50
何も分かってない奴がとりあえず凄い凄いと言ってて笑える
13:2012/10/03(水) 02:20:23.29
14デフォルトの名無しさん:2012/10/03(水) 03:11:01.47
そもそも、coffee scriptやpythonにメリットなんてあっただろうか
とレスしようとして>>13で思い直した。
けれど、pythonみたいに空白インデントが構文な言語をhtmlに埋め込みたいか?
15デフォルトの名無しさん:2012/10/03(水) 03:27:46.21
https://github.com/Coreh/katana
http://katanalang.org/

またまたnodeのつくりかけコンパイラ.
とおもったら…恩大の制作じゃないか!

s/恩大/御大/
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1216551072
おんたいだったし
16デフォルトの名無しさん:2012/10/03(水) 03:51:38.10
17デフォルトの名無しさん:2012/10/03(水) 03:58:14.06
「だんだんありがとう」が全国に伝播し、
日本海側、中国、四国、九州において方言として定着した。
定着する際に、西日本各地では「ありがとう」が省略されて「だんだん」のみで感謝

2000/12/07 南海日日新聞
18デフォルトの名無しさん:2012/10/03(水) 08:42:10.28
これってC#で書いたコードをJavaScriptに変換できるようなもんなの?
19デフォルトの名無しさん:2012/10/03(水) 08:43:40.40
JavaScript++で書いたものをJavaScriptに変換出来る
だからJavaScriptの糞な点がちゃんと改善されてるのか疑問
20デフォルトの名無しさん:2012/10/03(水) 09:33:38.34
http://typescript.codeplex.com/workitem/49

出川哲郎曰く「やばいよやばいよ private の意味がほとんど成してないよこれ」
21デフォルトの名無しさん:2012/10/03(水) 10:39:00.49
ワロッシュwww
22デフォルトの名無しさん:2012/10/03(水) 16:17:33.97
http://www.stevetrefethen.com/blog/TypeScript-what-was-the-problem-again.aspx
>In fact, there's an interesting parallel between TypeScript and Delphi where
>both require proprietary interface files to call functions in external modules
>with the same issues of getting these files generated/updated.

うーん外部モジュール呼び出すにしてコードの補完するにしても
つまるところ手書きのバインダが必要なのかな?

http://typescript.codeplex.com/discussions/397742
>Would it be possible to make the ".d.ts" files reference-able from normal ".js" files,
>such that we could get Intellisense and static type analysis even in existing JS codebases?

https://github.com/piersh/WebGL.ts/blob/master/WebGL.d.ts

いやー既存の、jsコードベースあるとしたら面倒そうだ
逆は簡単そうだけども。(typescriptのライブラリをjsから呼び出す)
23デフォルトの名無しさん:2012/10/03(水) 16:34:29.94
>>22
何が言いたいのかさっぱりわからない
24:2012/10/03(水) 16:37:02.84
コミュ障なんだろそっとしといてやれ
25デフォルトの名無しさん:2012/10/03(水) 19:39:01.67
node x typescript = answer
26デフォルトの名無しさん:2012/10/03(水) 19:50:57.24
better java の C#に
better javascript の typescript か

java と名のつくものに怨みでもあるのかな
もう SUN は存在しないのに
27デフォルトの名無しさん:2012/10/03(水) 20:40:56.09
そもそもJavaScriptが使いにくいのは型付けが弱いからであって
動的か静的かということはあまり関係ないような気がする。
28デフォルトの名無しさん:2012/10/03(水) 21:05:54.90
JavaScriptは人類の負の遺産
29:2012/10/03(水) 21:09:27.40
JavaScriptに乗り遅れた人はJavaScriptをけなす
30デフォルトの名無しさん:2012/10/03(水) 21:12:00.15
乗る前から潰れてるンだけど。
31デフォルトの名無しさん:2012/10/03(水) 21:22:32.17
Javascriptおもしろいじゃん?
32:2012/10/03(水) 21:25:55.27
面白いと思うけど一度見下し癖ついてる人には難しそうだねー
33片山博文MZボット ◆0lBZNi.Q7evd :2012/10/03(水) 21:26:56.23
Webアプリじゃないアプリは作れるのか?
34デフォルトの名無しさん:2012/10/03(水) 21:27:33.82
>>33
sine
35デフォルトの名無しさん:2012/10/03(水) 21:30:50.59
>>34 cosine tangent
36デフォルトの名無しさん:2012/10/03(水) 21:31:57.46
JSのどこを見下すんだろう?
関数はファーストオブジェクトだし、Lなんとなかみに自由。
マクロは無いが。
37デフォルトの名無しさん:2012/10/03(水) 21:36:05.90
JavaScriptってブラウザがいるんでしょ。おそいでしょ
38片山博文MZボット ◆0lBZNi.Q7evd :2012/10/03(水) 21:48:18.73
三角関数も知らないガキか?
100年早いんだよ
39デフォルトの名無しさん:2012/10/03(水) 21:50:13.89
三角関数が煽りになると思ってるセンスがよく分からん
40デフォルトの名無しさん:2012/10/03(水) 22:24:08.07
ブラウザにたよってると、ちゃんとよめないページになってしまうおそれがある
41デフォルトの名無しさん:2012/10/03(水) 22:29:40.68
>>33
組込みの話ならお門違い
大体、世の中の需要のほとんどはwebアプリで事足りるでしょ
42デフォルトの名無しさん:2012/10/03(水) 22:38:28.33
2chブラウザもwebアプリで十分だよな
エディタも音楽プレイヤーも
43片山博文MZボット ◆0lBZNi.Q7evd :2012/10/03(水) 22:42:01.28
>>41 WSHとAPI呼び出しのサポートあればウィンドウアプリも作れるかもと期待してた。無理っすか?どうも有り難う
44デフォルトの名無しさん:2012/10/03(水) 22:45:31.58
できるでしょ。これってトランスレータだろうから、winjsつかえば
45デフォルトの名無しさん:2012/10/03(水) 23:20:54.85
C#作った人が作ってるのか
http://channel9.msdn.com/posts/Anders-Hejlsberg-Introducing-TypeScript
ヘルスバーグ神格化されてるなw
46デフォルトの名無しさん:2012/10/04(木) 00:55:14.10
そりゃTurbo Pascal作ってDelphi作ってC#作れば神格化されるさw
47デフォルトの名無しさん:2012/10/04(木) 01:23:13.24
googleも最近似た感じの言語作ってたけど、どっちがいいの?
48デフォルトの名無しさん:2012/10/04(木) 01:24:47.19
素のJSじゃやってらんねーからいろんなところが代替を出してるんでしょうが。
Javaも似たような状態だな。
49デフォルトの名無しさん:2012/10/04(木) 02:28:29.51
>>47
dartやgwtより、こっちの方が魅力的。jsのスーパーセットになってる。
50デフォルトの名無しさん:2012/10/04(木) 02:45:03.69
口をそろえて言ってるが、噴飯モノだよなあ
そもそも使ってから褒めろよと
51デフォルトの名無しさん:2012/10/04(木) 03:30:45.23
jsのスーパーセットで既存のライブラリも使えるから試そうと思うけれど、
dartなんて試そうなんて気すらおこらなかったよ
52デフォルトの名無しさん:2012/10/04(木) 03:36:16.27
jsよりはdartの方が遥かに優れてるよ
だからjsのスーパーセットとか言われたら不安しかない
53デフォルトの名無しさん:2012/10/04(木) 03:42:04.81
なわけない。dartなんてjava系統で動的言語の柔軟性なんて欠けている
54デフォルトの名無しさん:2012/10/04(木) 03:44:43.62
http://typescript.codeplex.com/SourceControl/changeset/view/fe3bc0bfce1f#samples%2fnode%2fnode.d.ts

sample の node の機能を利用した例をみれば
haxeよりは 元の js のコードに近くはなる綺麗だけど
.d.ts ファイル必須。

http://www.typescriptlang.org/Playground/
playground だと
Unable to load reference
"$model1"
でエラーになるけどコンパイルには成功してるのかな?
コード生成されてる

コンソールからだとTypeError: Object #<Object> has no method 'existsSync'
でコンパイルできない。

https://github.com/madrobby/vapor.js/pull/60

各種ライブラリの port 待ち。さすがvapor.js
55デフォルトの名無しさん:2012/10/04(木) 05:40:16.87
>>53
typescriptこそJava並なみのヘビー言語だから心配すんな
56デフォルトの名無しさん:2012/10/04(木) 06:28:30.70
とうとう勝負を決する時が来たようだ、LL War
57デフォルトの名無しさん:2012/10/04(木) 06:59:38.96
スクリプトなのにヘビーとはこれいかに
58デフォルトの名無しさん:2012/10/04(木) 09:57:42.40
>>56>>57
いちいちコンパイルしないと使えないしLLじゃねーよ。糞言語
59デフォルトの名無しさん:2012/10/04(木) 10:09:56.42
.net や jvm ではバイトコードを生成して環境差をそこで吸収してるけど
javascriptだと souce map というのがそれに当たるかな

直接ES3.1, ES4, ES5, ES6 向きの
生成コードを出力するというコンセプトはないと思う。まずは souce map に落としてそこで吸収する流れかと。

https://github.com/ryanseddon/source-map/wiki/Source-maps:-languages,-tools-and-other-info
source map generatorの使い方
http://d.hatena.ne.jp/gfx/20120408/1333892223

コンパイラの機能をリフレクションで利用したい
とか .net の ironpython やら ironruby で一時可能だったけど(windows環境以外で

さいきんはこんなかんじが流行なんかな
車輪の再発明という気も多少するが

Does TypeScript provide an explicit Public API for NodeJS Module Access?
http://stackoverflow.com/questions/12717309/does-typescript-provide-an-explicit-public-api-for-nodejs-module-access
http://gkz.github.com/LiveScript/

Livescript は coffeeの改良系の実装らしい…コンパイラ技法屋さん楽しそうやw
60デフォルトの名無しさん:2012/10/04(木) 10:31:17.48
>>58
これを用いてJavascriptが勝利すると言う事だよ
馬鹿か?お前
61デフォルトの名無しさん:2012/10/04(木) 10:52:40.34
Javascriptが糞すぎてどうしようもない
62デフォルトの名無しさん:2012/10/04(木) 13:40:18.04
コンパイラまだーチンチン
63デフォルトの名無しさん:2012/10/04(木) 13:58:41.35
>>62
最新のブラウザにはJITコンパイラが入ってるから、単体のコンパイラなんか、もういらないと思う。
64デフォルトの名無しさん:2012/10/04(木) 14:37:22.53
>>62
http://blog.markrendle.net/2012/10/02/the-obligatory-typescript-reaction-post/
zeh says:
October 2, 2012 at 1:18 pm
Re: classes ? one of the problems is that ES6 doesn’t seem to have a single
‘class’ standard. I haven’t gone that deep into the proposal, but TypeScript
seems to use the “Minimal classes” proposal
(http://wiki.ecmascript.org/doku.php?id=strawman:minimal_classes) not the main class one.

How final is Harmony’s proposal? It seems to be difficult to find information
on that. I hope Microsoft is not creating a new JScript.

Reply
zeh says:
October 2, 2012 at 1:20 pm
Actually, on second thought, TypeScript seems to use the “Maximally Minimal”
proposal instead
(http://wiki.ecmascript.org/doku.php?id=strawman:maximally_minimal_classes).

Ariya Hidayat ?@ariyahidayat
Need class and module? Use #Harmony and compile it
(same trick like in #TypeScript), see
http://ariya.ofilabs.com/2012/06/esprima-and-harmony-module.html and
http://ariya.ofilabs.com/2012/09/javascripts-future-class-syntax.html

コンパイラの前にまずはES6言語仕様の策定作業。
まだクラスの定義も定まってない。あくまでproposalの段階なのだ
65デフォルトの名無しさん:2012/10/04(木) 14:47:31.27
Cは規格なんか決まる前にコンパイラ出たけど?
66デフォルトの名無しさん:2012/10/04(木) 16:06:03.64
コンパイラってもう出てるよな?
こいつら何の話してんだ?
67デフォルトの名無しさん:2012/10/04(木) 19:22:51.64
とりあえずCoffeeScriptとDartが一瞬でオワコン化したという解釈でおk?
68デフォルトの名無しさん:2012/10/04(木) 19:23:29.40
あとはJavaScriptが「お前はクソだ。使い物にならん」と
四方八方からタコ殴りにされているという認識
69デフォルトの名無しさん:2012/10/04(木) 19:25:56.71
長所:JavaScriptがそのまま通る
短所:JavaScriptがそのまま通る
70デフォルトの名無しさん:2012/10/04(木) 21:43:16.74
Standard ECMA-262 5.1 Edition / June 2011
http://ecma-international.org/ecma-262/5.1/

C++/CLI 言語仕様書 西暦2005年12月 初版
http://vene.wankuma.com/ecma372/19_1_5_class_member.aspx#SS.19.1

typescript はプリプロセッサに近いものだから C というか C++に近い立ち居地。
ただこの web版 の C++ は現時点ではどれが正解とも云い難い。

https://github.com/jashkenas/coffee-script/wiki/List-of-languages-that-compile-to-JS

結局デファクトとったとこ&さまざまな試みによる知見に元づく合意
その記法が標準になる
71デフォルトの名無しさん:2012/10/04(木) 21:56:54.68
結局のところJavaScriptはそのままで普及しているので
それに準拠したやり方が最良なんだろうな。
72デフォルトの名無しさん:2012/10/04(木) 22:45:48.78
JSしか書けないウンコプログラマだけが
JSで問題無いと思ってる
73デフォルトの名無しさん:2012/10/04(木) 23:18:41.73
いろんな言語で幅広く仕事をしたが
結局のところ、言語の良し悪しは
大した問題ではない。
74デフォルトの名無しさん:2012/10/04(木) 23:25:12.10
じゃあアセンブラで業務アプリ書いて
75デフォルトの名無しさん:2012/10/05(金) 00:00:20.72
>>73が使った言語: Java, VB, Perl, PHP, JS
76デフォルトの名無しさん:2012/10/05(金) 00:50:23.87
>>73
>>73が使った言語:??lisp,??c++,??c,??haskel,??c#
77デフォルトの名無しさん:2012/10/05(金) 01:28:13.01
でもjavascriptで開発するとソース丸見えじゃね?
78デフォルトの名無しさん:2012/10/05(金) 01:36:09.64
サーバーありきだからどうでもいい
79デフォルトの名無しさん:2012/10/05(金) 03:33:53.11
クライアントアプリケーションでJavaScriptを組み込んで使えると便利そう
scheme 系とか組み込みで地味に利用されてる

でもエンジンのAPIが組み込めるように公開されてる訳ではないので
IE9以降がメインターゲットなんだろうかな

Qtscipt は ES3.1
http://qt-project.org/forums/viewthread/5381
ECMA-262 (5th|Harmony|next) で宣言された プロトタイプ の拡張はアリ?ナシ?
http://qiita.com/items/3a70b5a62b6c87379c77
JScript でサポートされる機能
http://msdn.microsoft.com/ja-jp/library/49zhkzs5(v=vs.80).aspx

How to call the compiler from .NET?
http://typescript.codeplex.com/discussions/397810

結局 MS Script Control でやれとなる。(当然エンジンはES3.1相当のJSctiptの構文のみが使える
エンジンは非公開だからなぁ…ブラウザ対応次第かと(特にモバイル
80デフォルトの名無しさん:2012/10/05(金) 04:16:11.04
>>73
アセンブリャーからObjective-Cまでいろんな言語で幅広く仕事をしたが
言語の良し悪しは大した問題ではない(APIや周辺コミュニティのほうが重要)という通念を覆すほど
JavaScriptはクソ

以前からずっとバッドノウハウを量産して喜んでた界隈の連中を横目で眺めつつ
おかしいと思ってたんだよ。
81デフォルトの名無しさん:2012/10/05(金) 04:27:02.48
LL言語マンセーだの動的言語マンセーだの喧しいからそういうものかと思ってたが
HTML5HTML5うるせーから仕方なく1ヶ月程度でキャッチアップしてみたら
お前らこんなどうしようもない言語と環境で仕事してたの、としか言いようがなくて

要はろくに大規模開発したことのない、レベルの低いJavaScripterどもが
駄サイクルを作ってたんだなという認識ですね。
82デフォルトの名無しさん:2012/10/05(金) 04:32:08.45
機能もTypeScript登場で「JSの時代!」という無邪気なツイートを見かけたが、
CoffeeScript、Dart、JSX、Haxe、TypeScript、その他無数の変換言語↓
https://github.com/jashkenas/coffee-script/wiki/List-of-languages-that-compile-to-JS
これら全部現行のJavaScriptを否定しに来てるというのがまだ理解できないようでは終わっとる

JSが基幹言語?その逆で、ただの土管扱いされてるんだよ。
使いもんにならん言われてるんだよ。わざわざ新言語を量産してまで。

今回、あのHejlsbergにまでノーと言われたんだよ。
83デフォルトの名無しさん:2012/10/05(金) 06:54:50.23
cにclassとinterfaceとgcとarrayとhash付ければ
それでよかったんだよ、IDEも豪華に対応できたんだよ
言語開発者はみんな余計な物付けすぎ
84デフォルトの名無しさん:2012/10/05(金) 08:23:06.55
>>81
典型的な一ヶ月程度勉強しただけの
やつの感想ですねw
85デフォルトの名無しさん:2012/10/05(金) 08:59:31.24
Javascriptはこんなクソコードが通るからゴミ


function f(x, y) {
    return x + y;
}
alert(f(1, "23")); # 123




なお、Typescriptで型を付けても通る(暗黙の型変換)

function f(x: number, y: string) {
return x + y;
}
alert(f(1, "23"));
86デフォルトの名無しさん:2012/10/05(金) 09:23:17.34
C#でもJavaでも通るよ
87デフォルトの名無しさん:2012/10/05(金) 09:35:19.35
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Function/bind
http://kangax.github.com/es5-compat-table/

javascript 1.8.5とかガンガン攻める姿勢は買ったげる
でも ie8 軒並みアウトなんや
88デフォルトの名無しさん:2012/10/05(金) 09:42:02.14
MSと違って規格がポシャったら互換性切っても怒られないからな
89デフォルトの名無しさん:2012/10/06(土) 00:03:37.41
>>86
C#もJavaも糞言語じゃん
90デフォルトの名無しさん:2012/10/06(土) 00:18:37.03
>>89
じゃあお前の好きなクソ言語の名前言ってみな。
それがクソかどうか判断してやるからさw
91デフォルトの名無しさん:2012/10/06(土) 01:06:52.73
ドカタの判断 = 俺に使いこなせない言語はクソ
92デフォルトの名無しさん:2012/10/06(土) 02:22:41.18
使いこなせないんじゃない。
ドカタ言語をあえて選ばないだけだ。
93デフォルトの名無しさん:2012/10/06(土) 06:11:05.60
JSを使うくらいならTypeScriptを使ったほうがマシというだけで、JS以外の言語より良いという話ではないよ
それにまだ未完成品だし
94デフォルトの名無しさん:2012/10/06(土) 10:59:35.49
言語の良し悪しは、言語仕様よりも、言語環境できまる。

実行環境の多さ、ライブラリの多さ、ノウハウの多さ、
書籍の多さ、提供会社の多さ、使用ユーザーの多さ、などなど。

それがわからない奴は、どうして良い言語が普及しないんだ!と
悩むことになる。
95デフォルトの名無しさん:2012/10/06(土) 11:07:30.37
JSはバッドノウハウの塊だから決して良いとは言えない
ただデファクトスタンダードを取ったというだけ
これは市場が選んだわけではない。勝手に決められて嫌々ながらも従わざるを得なくなった
従いたくない人たちが魔改造を繰り返してる
96デフォルトの名無しさん:2012/10/06(土) 11:25:54.39
バッドノウハウってなんのこと?

Perlでクラスを作るにはいろんな方法があります。
これがバッドノウハウです。みたいな話?w
97デフォルトの名無しさん:2012/10/06(土) 13:28:03.37
http://stackoverflow.com/questions/12756423/is-there-an-alias-for-this-in-typescript

lambda式内で this 参照はできないんかな…
98デフォルトの名無しさん:2012/10/06(土) 13:41:26.38
>>94
言語が普及するか否かは、言語の良し悪しでは決まらない


普及する = 最底辺の馬鹿でも使える、が大前提だからね
99デフォルトの名無しさん:2012/10/06(土) 14:03:38.71
>>98
言語を馬鹿にしているのか、
それを使ってる人を馬鹿にしているのか。
はっきりさせていい?

お前が馬鹿にしているのは、使ってる人であって言語じゃないよね。

普及した優れた言語。
それは馬鹿でも使えるが当然天才でも使えるんだよ。

お前が馬鹿にしているのは、天才が使っている優れた言語、ではない、

単に馬鹿でも使えることが、悔しいんだ。
なぜだろうねw
100デフォルトの名無しさん:2012/10/06(土) 14:28:40.06
で、Javascriptは糞、ということに関してはコンセンサスとれてますよね。
まさかWeb2.0だAjaxだHTML5とかいうバズワードでノセられた奴が強弁してないよね。
101デフォルトの名無しさん:2012/10/06(土) 14:29:38.54
>>100
お前がJavaScriptとライブラリをごっちゃにしてるってことはよくわかったよ。

馬鹿が言った言葉は、やっぱり馬鹿だってわかるなw
102デフォルトの名無しさん:2012/10/06(土) 15:18:00.94
バズワードをガン無視してる俺かっけーw
103デフォルトの名無しさん:2012/10/06(土) 17:55:07.32
無能すぎて食って行くだけで必死の奴は
仕事にありつけそうな言語使えば良いよ
104デフォルトの名無しさん:2012/10/06(土) 18:03:58.51
デブでもおばはんでも乗れるママチャリが普及してるからって
ロードレーサーにママチャリ乗れっていう馬鹿はいない
105デフォルトの名無しさん:2012/10/06(土) 18:07:43.57
近所のコンビニにライダーブーツ履いてNS400に乗って行くんだ
106デフォルトの名無しさん:2012/10/06(土) 18:15:57.46
ところが原付になんでもやらせようとしだすから
107デフォルトの名無しさん:2012/10/06(土) 18:29:01.76
Typescriptは原付を改造パーツでチューンナップしようって発想
改造しても所詮原付は原付
108デフォルトの名無しさん:2012/10/06(土) 20:41:39.23
はっきりいって、c++とhtml5,jsだけで良いよね
実装が増える毎にVMの中のヒトたちが対応しきれない悪寒
109デフォルトの名無しさん:2012/10/06(土) 20:49:42.85
お前よりもVMの中の人達は優秀。
対応しきれないのはお前だけ。
110デフォルトの名無しさん:2012/10/06(土) 20:50:16.95
111デフォルトの名無しさん:2012/10/06(土) 21:01:43.24
>>85
型付けても通るとかダメダメじゃん
112デフォルトの名無しさん:2012/10/06(土) 21:21:09.30
組み込みの文字列連結がある言語なら一番普通の動作だろ
113デフォルトの名無しさん:2012/10/06(土) 21:30:01.28
型付けてるんなら x + y; の挙動は
コーディング時に明確に予測できるはずだから何の問題もないだろ
その程度の言語仕様も知らずに使える言語が欲しいってことか?
114デフォルトの名無しさん:2012/10/06(土) 21:40:08.37
>>111
なんで通らないと思ったの?
115デフォルトの名無しさん:2012/10/06(土) 21:41:49.61
>>112
え?
116デフォルトの名無しさん:2012/10/06(土) 21:45:19.13
動的言語で普通この手の話で問題視されるのは「結果が予測できないこと」なわけで
yの内容によって文字列連結になったり数値加算になったりするなら問題だが
そうでなくて挙動が完全に予測できるんなら全く問題ない
117デフォルトの名無しさん:2012/10/06(土) 21:46:17.70
暗黙の型変換の話であって
動的言語とか全く関係ないんだが
118デフォルトの名無しさん:2012/10/06(土) 21:49:23.06
文字列とその他の+ではその他の方を
文字列に変換してから連結する仕様になっている言語はかなり多いからごく自然なことだが
暗黙の変換だろうが言語仕様知ってりゃ予測できるだろ
119デフォルトの名無しさん:2012/10/06(土) 21:55:11.18
つーか、ただの演算子オーバーロードでは?

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

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

型の問題っていうのは、互換性がない型、オーバーロードも定義さていないもの、
無関係のものを代入したら動かないのに、それが実行されるまで
わからないってのが問題なのに。
120デフォルトの名無しさん:2012/10/06(土) 21:58:45.78
言語仕様の範囲ならどんな振舞いだって原理的に予測可能だわな
121デフォルトの名無しさん:2012/10/06(土) 22:00:55.75
>>119
むしろ動いちゃうのが問題
>>85で引数に型指定しない場合だと、x, yの内容によって+の挙動が全く異なってしまう
さすがに+使うときは、文字列連結か数値加算かどちらか一方しか期待してないだろうから、
予期しない動作によるバグの原因になる。
型を指定するなら何の問題もない。
122デフォルトの名無しさん:2012/10/06(土) 22:26:37.51
http://www.typescriptlang.org/Playground/

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

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デフォルトの名無しさん:2012/10/06(土) 22:37:34.93
それってC#で言えば
private var func(){...}
で型推論してくれよって話じゃないか。
124デフォルトの名無しさん:2012/10/06(土) 22:47:46.52
>>122
型推論はAIじゃねぇよ。
どちらでも取れる問題の
正解を出せなんて不可能な話。
125デフォルトの名無しさん:2012/10/06(土) 23:10:28.55
どちらでも取れる?
hoge()の戻り値はstring以外ありえんだろ
126デフォルトの名無しさん:2012/10/06(土) 23:12:02.77
>>125
どこかでオーバーライドするかもしれんだろ。
windows.hoge = function () {return 123}
127デフォルトの名無しさん:2012/10/06(土) 23:14:24.55
>>126
>>122でstring返す関数にnumberって型書いてエラーにならないのと
何の関係があるのそれ
128デフォルトの名無しさん:2012/10/06(土) 23:16:05.29
>>126
それは無いものと考えないと静的解析の意味無い
ジェネリックには対応する予定らしいからもうちょっと型推論も強力にはなるんじゃないの
129デフォルトの名無しさん:2012/10/06(土) 23:21:13.60
上はエラーになって下がエラーにならないんだから、もうね...

function f() : number { return 1 + "2"; }
function g() : number { return ((x,y) => x + y)(1, "2"); }
130デフォルトの名無しさん:2012/10/06(土) 23:25:25.05
だんだんイチャモンになってきたな。
131デフォルトの名無しさん:2012/10/06(土) 23:26:58.75
いやいや、間違った型を書いてもエラーにならないのは
型を全然書かないより邪悪ですから
132デフォルトの名無しさん:2012/10/06(土) 23:32:40.25
さすがに型まで書いてるのに
数値の加算が文字列連結になったらびっくりするだろ

でも>>129のgの戻り値を使ったら、そういうことが起こる
133デフォルトの名無しさん:2012/10/07(日) 00:07:25.88
>>132
お前、数値オブジェクトと演算子オーバーロードって
発想が頭にないんじゃないのか?

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

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

134デフォルトの名無しさん:2012/10/07(日) 00:08:54.88
たんに、数値オブジェクトのaddメソッドは
取りうる引数に、数値オブジェクト以外に
文字列オブジェクトに対応している。
135デフォルトの名無しさん:2012/10/07(日) 00:11:41.68
どうでもいいけどアンダース的には演算子はインスタンスメンバじゃなくて静的メンバだよ
136デフォルトの名無しさん:2012/10/07(日) 00:16:00.15
>>133>>134
で?それが

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

においてfが文字列連結を実行しても良い理由になるの?
137デフォルトの名無しさん:2012/10/07(日) 00:18:33.48
>>136
両方が数値の場合は、数値計算ですよ?
片方が文字列の場合は、文字列結合バージョンの加算が呼ばれます。
138デフォルトの名無しさん:2012/10/07(日) 00:20:10.83
>>137
>>136のfの引数に>>129のgの戻り値を入れてみ?
139デフォルトの名無しさん:2012/10/07(日) 00:21:52.90
>>97
Local "_this" silently conflicts in arrow function
http://typescript.codeplex.com/workitem/11

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

Capturing instance methods breaks 'this'
http://typescript.codeplex.com/workitem/127

this 周りは仕様に注意を要する部分ではあるとは思う
140デフォルトの名無しさん:2012/10/07(日) 00:21:57.68
普通に数値計算されましたが?
141デフォルトの名無しさん:2012/10/07(日) 00:22:09.72
C#で(int)(object)"1"とかやっても通るのと一緒だろ
動いちゃうのは問題だが
142デフォルトの名無しさん:2012/10/07(日) 00:24:17.11
>>140
あほか。すぐバレる嘘付くなよ
g()は文字列"12"なんだからfに入れたら文字列加算になるよ
gの型注釈がnumberだから型エラーにはならないけど
143デフォルトの名無しさん:2012/10/07(日) 00:26:02.74
>>142
バージョン古いんじゃないですか?w
144デフォルトの名無しさん:2012/10/07(日) 00:26:12.93
コンパイルオプションで実行時に型チェックするモードがあったほうがいいな
型推論をいくら完璧にしようが>>141みたいなのはどうしようもないし
145デフォルトの名無しさん:2012/10/07(日) 00:26:46.89
>>143
バージョンwwwお前ばかすぎ
146デフォルトの名無しさん:2012/10/07(日) 00:31:14.49
>>144
明示的なキャストは自己責任だと思うけど、実行時の型チェックは欲しいね
147デフォルトの名無しさん:2012/10/07(日) 00:32:20.49
互換性のために仕方ないことでしょ。

そのうち、strictモードみたいなのでて
レガシーコードと呼ばれるようになるさ。
148デフォルトの名無しさん:2012/10/07(日) 00:35:32.63
ようするにみんなの結論は
ベストではないが、ベターな言語なんだろ?
149デフォルトの名無しさん:2012/10/07(日) 00:36:39.20
Javascriptよりはマシ
150デフォルトの名無しさん:2012/10/07(日) 00:38:15.16
標準準拠で互換性があってベターなら使わない理由はないな。
151デフォルトの名無しさん:2012/10/07(日) 00:38:50.82
別に普及しなくてもいいけどGoogleのDartみたいなバカだけでも潰してくれ
152デフォルトの名無しさん:2012/10/07(日) 00:40:12.05
まだ様子見の段階
153デフォルトの名無しさん:2012/10/07(日) 00:40:48.57
Dartよりはマシ
154デフォルトの名無しさん:2012/10/07(日) 00:52:18.16
MSだからいつものようにボロカスに叩かれるかと思ったら
微妙な反応が多くて面白いなw
CofeeScriptやDartがいかにクソだったかがわかる
155デフォルトの名無しさん:2012/10/07(日) 00:58:25.61
MSはプログラミング言語と開発環境には定評と実績がある
156デフォルトの名無しさん:2012/10/07(日) 01:08:31.94
案外海外のほうがアンチMS的な反応が多かった。
どうせすぐハシゴ外すんだろ、みたいな。
157デフォルトの名無しさん:2012/10/07(日) 01:11:13.27
それが一番当てはまるのはGoogleだろ
MSがIEに独自言語の処理系載せたりしたら永遠に外せなくなるぞ
158デフォルトの名無しさん:2012/10/07(日) 02:03:33.96
ぶっちゃけDart発表時のほうが盛り上がってたよね
オプションで型チェック出来て素晴らしいって感じで

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

TypeScriptにはそれは当てはまらなくて、将来のECMAScriptを
先取りしているから、JavaScriptの正統な進化版として考えることが出来る。
160デフォルトの名無しさん:2012/10/07(日) 02:51:35.93
>>154
ヘルスバーグの名前が出てるからとりあえずみんな様子見てるんじゃないの?
161デフォルトの名無しさん:2012/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 型
http://ufcpp.net/study/csharp/sp2_nullable.html
162デフォルトの名無しさん:2012/10/07(日) 07:32:08.05
http://code.msdn.microsoft.com/windowsdesktop/7-null-null-null-48ae7f82

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

何でNullがオブジェクトなの?
https://gist.github.com/2325537
Type(null) は Null 型だから Object ではないってことですか。typeof とは違うんですね。
http://togetter.com/li/300821
http://wiki.ecmascript.org/doku.php?id=harmony:typeof_null
https://gist.github.com/887049

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

実際のとこ至るところでYou、typeofでObjectt判定しちゃいなよ
してるから null はオブジェクトみたいに扱われてるんだなと…
163デフォルトの名無しさん:2012/10/07(日) 08:31:48.05
>>159
Dartを良い言語と言ってる時点で
Java, JS, Perl, PHP程度しか使った事が無い
ドカタまるだしなのが分かる。
もうちょっとマトモな言語も使ったら良いよ。
164デフォルトの名無しさん:2012/10/08(月) 11:12:46.64
マトモな言語教えてください
165デフォルトの名無しさん:2012/10/08(月) 14:20:32.38
VB
166デフォルトの名無しさん:2012/10/08(月) 15:45:07.25
>>72
jsだけで飯が喰えるのに、いくつも言語おぼえる必要があるなんて
2次請け、3次請け以下の大した技術力のない奴隷商に飼われているとしか思えない。
167デフォルトの名無しさん:2012/10/08(月) 15:54:21.68
むしろjsの仕事なんてドカタ仕事しかない
168デフォルトの名無しさん:2012/10/08(月) 16:13:57.29
また苦しくなったらドカタかw
よっぽど都合がわるいんだろうなw
169デフォルトの名無しさん:2012/10/08(月) 16:15:40.20
他人が薄給ドカタ仕事を引き受けてくれるのに
何の都合が悪いというの?
170デフォルトの名無しさん:2012/10/08(月) 16:22:08.31
>>166
底辺の奴らだけが、奴隷市場の流行に合わせて
Java, VB, PHP, JavaScript 等を覚える必要がある
171デフォルトの名無しさん:2012/10/08(月) 16:27:02.20
>>169
いや、単純にじゃあドカタじゃないやつは
なんて呼ぶの?って話だよw
172デフォルトの名無しさん:2012/10/08(月) 16:31:15.67
週40時間労働、年収800万以上でプログラマを名乗れます
それ以下はドカタ
173デフォルトの名無しさん:2012/10/08(月) 16:39:55.06
>>172
ダウト。それだと学生プログラマは存在せず
学生ドカタということになってしまう。
174デフォルトの名無しさん:2012/10/08(月) 16:42:47.73
え?文脈的に働いてる人の話だって分からない?
ドカタに文脈なんて無理かー
175デフォルトの名無しさん:2012/10/08(月) 16:44:18.74
>>173
え?お前が書いた>>166って学生も対象にしてたの?
176デフォルトの名無しさん:2012/10/08(月) 17:10:33.74
プログラマとドカタなんて俺からみたら違いはない。
喧嘩せずに仲良くやりなよ。
そんなことよりtypescriptでひとつなんか作って公開してみて
作った感想でも披露してみないか?
177デフォルトの名無しさん:2012/10/08(月) 17:12:19.96
>>175
常識でわかるだろw
178デフォルトの名無しさん:2012/10/08(月) 17:40:18.99
常識で分かります。>>173が馬鹿だってことが。
179デフォルトの名無しさん:2012/10/08(月) 23:12:20.09
なんで2ch掲示板ってこうなるんだろ
匿名だからでは説明できない。redditと比べても明かに低レベル
日本人の資質か
180デフォルトの名無しさん:2012/10/09(火) 02:50:38.07
日本人の資質だからでは説明できない
181デフォルトの名無しさん:2012/10/09(火) 05:20:26.98
反応の速さにこだわるから
即答できなければレベル高くても失格という風潮
182デフォルトの名無しさん:2012/10/09(火) 06:54:35.45
推すのは得意というか
でも肝心要で引き際を誤る

そしてデスマへ。責任論を巡って議論。
このパターンはとても多いと思う
183デフォルトの名無しさん:2012/10/09(火) 07:16:52.33
ここは全部自演も余裕だからサンプルにはならんけどね
184デフォルトの名無しさん:2012/10/10(水) 01:16:38.55
>>179
それ、比較対象がおかしくね?4chが妥当
185デフォルトの名無しさん:2012/10/10(水) 04:50:34.46
>>184
4chはふたばだろアホ
186デフォルトの名無しさん:2012/10/10(水) 04:51:47.08
       //
     /  /   バカッ
     //⌒)∩__∩
    /.| .| ノ     ヽ
    / | |  ●   ● |     
   /  | 彡  ( _●_) ミ 馬鹿には無理
   /  | ヽ  |∪|  /_
  // │   ヽノ  \/
  " ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ
187デフォルトの名無しさん:2012/10/10(水) 06:42:09.15
まあIT関連のニュース記事やブログ記事も日本語のやつは平均的に劣ってるからな
188デフォルトの名無しさん:2012/10/10(水) 08:04:29.22
平均が優秀ではないのは当然です
まず基本的なことから始めないと最先端のニュースも扱えません
189デフォルトの名無しさん:2012/10/10(水) 08:11:29.44
基本的な部分がダメだから言ってんだろw
190デフォルトの名無しさん:2012/10/10(水) 08:12:45.01
別に内容の難易度で優劣付けてないわ。質だよ質
191デフォルトの名無しさん:2012/10/10(水) 08:27:59.51
量ではなく質なら優秀なやつが数人いるだけでいい
192デフォルトの名無しさん:2012/10/10(水) 15:00:15.97
よくそんなズレた頓珍漢なレスできるな
193デフォルトの名無しさん:2012/10/10(水) 15:19:50.41
言語に優劣がある
のではなく
ただの馴れと慣習による部分が大きいだけだ。流儀は場所によって変わるのは当然
194デフォルトの名無しさん:2012/10/10(水) 15:31:56.93
現実に言語には優劣がある
ただしそれは一方の角度から見た場合の優劣であって
別の角度から見ればまた違う優劣が現れる
すなわちVBは馬鹿用なのでRubyより劣るとしても
速度ではRubyの方が劣っていたりする訳だ
195デフォルトの名無しさん:2012/10/10(水) 16:09:59.15
rubyとかすかしたかっこつけたい奴が使ってるだけでしょ
VBAでいいじゃん
196デフォルトの名無しさん:2012/10/10(水) 18:37:26.47

29 デフォルトの名無しさん [sage] 2012/10/10(水) 18:11:39.35 ID: Be:
    http://www.infoq.com/jp/news/2012/10/Ruby-on-Rails-Node-js-LinkedIn

    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デフォルトの名無しさん:2012/10/10(水) 19:53:12.74
じゃあ、初めからNode.jsでやっときゃ良かったのに、
って話でも無いんだろうな。
サービスを色々試行錯誤する分にはRubyの方が楽だったのかも。
198デフォルトの名無しさん:2012/10/10(水) 20:37:48.80
railsとnode.jsって用途ちがくね?
199デフォルトの名無しさん:2012/10/10(水) 21:47:44.64
>>154
> MSだからいつものようにボロカスに叩かれるかと思ったら

もはやそんな時代じゃないしな。
Mozillaあたりの連中はMSガーMSガー喚いててて笑ったけど。
200デフォルトの名無しさん:2012/10/10(水) 21:54:30.31
ボカロスに叩かれる
201デフォルトの名無しさん:2012/10/10(水) 21:54:41.59
あとは、今はECMAScriptのスーパーセットだとしても
どっかで互換壊れてまうだろとJavaScript原理主義者の指摘
俺の答えは、それがどうした、ですかね。ゴミ言語JavaScriptなどぶち壊せ。捨てろ。
202デフォルトの名無しさん:2012/10/10(水) 22:24:38.31
むしろECMAScriptがTypeScriptに合わせろ
っていうかもし互換壊れて大きな問題になるほど普及すれば必然的にそうなるだろうし
203デフォルトの名無しさん:2012/10/10(水) 22:41:41.40
これでスマホアプリ作ってみようかな
JavaScript互換だから手軽に始められるのはいいね
204デフォルトの名無しさん:2012/10/10(水) 23:44:49.43
NodeからJavaScriptちゃんと見たけど良い言語じゃん、大規模開発に向かないだけで。それをTypeScriptが補完してくれるんだから最強だね。
205デフォルトの名無しさん:2012/10/11(木) 00:27:01.14
完全に型注釈付けるのを強制するか、ちゃんと型推論してくれるなら
JSの型付けの弱さを克服できるんだがなぁ > TypeScript
206デフォルトの名無しさん:2012/10/11(木) 00:56:40.33
javascript で template programing とか誰得
207デフォルトの名無しさん:2012/10/11(木) 01:41:29.91
>>205
コード書く側が意識してりゃ済む話だろ
208デフォルトの名無しさん:2012/10/11(木) 07:19:44.42
意識してりゃ済む話なら型チェックなんて要りません
209デフォルトの名無しさん:2012/10/11(木) 08:49:00.94
間違いを一個だけ探すなら意識するだけで済む
百個ぐらい溜まってからまとめて探すなら型チェックが必要
210デフォルトの名無しさん:2012/10/11(木) 09:40:33.99
インテリセンスを自力で実装した事のある俺に言わせて貰うと
型の省略は開発ツール開発者に恨みでもあるのかというくらい酷い
分析ツールを走らせるための情報が圧倒的に足りてない
型推論なんて言語開発者のオナニーだからやめてくれ
211デフォルトの名無しさん:2012/10/11(木) 09:45:01.91
開発ツールの開発者がヘボいとJavaみたいに同じ所に二回も三回も型名を書かないといけないわけか。
212デフォルトの名無しさん:2012/10/11(木) 09:47:21.69
>分析ツールを走らせるための情報

その辺はおいおい言語の成熟と共に出揃ってくるもんなんじゃ
日本語と広辞苑の編纂作業みたいな一度解体する作業は不可欠や
213デフォルトの名無しさん:2012/10/11(木) 10:07:58.75
そりゃ「補完」の情報を渡すべき所に「型」の情報を渡せば間違いも起きるわ
214デフォルトの名無しさん:2012/10/11(木) 10:29:32.70
インテリセンスが型推論すれば良いだけの話だ罠
215デフォルトの名無しさん:2012/10/11(木) 11:38:40.26
>>214
型推論じゃないよ補完は名前を推定するんだよ
216デフォルトの名無しさん:2012/10/11(木) 11:48:36.98
補完よりキータイプ速い漏れは勝ち組
っつーか補完機能なんて邪魔だろ?
217デフォルトの名無しさん:2012/10/11(木) 12:11:05.22
ドカタの発想だな
218デフォルトの名無しさん:2012/10/11(木) 15:33:49.24
>>216 同意
つうかタイピング遅いやつ多すぎ
219デフォルトの名無しさん:2012/10/11(木) 19:20:47.79
>>215
アホか。コンパイラが型推論できるんだから
インテリセンスだって型推論で型情報を得られるだろ

型が省略されてるから名前の補完ができませーん < アホ
220デフォルトの名無しさん:2012/10/11(木) 20:49:00.15
型推論は完璧じゃないよ。

たとえば変数Aがあったとき、
この型を推論できる言語はない。
221デフォルトの名無しさん:2012/10/11(木) 21:09:22.41
お前は何を言ってるんだ
222デフォルトの名無しさん:2012/10/11(木) 21:20:06.73
場合によっては型推論があっても
型注釈を必要とするケースはあるが、
低能さが文面から滲み出てる>>220が考えつく程度のコードなら
型推論できると思うぞ
223デフォルトの名無しさん:2012/10/11(木) 22:03:10.22
function(x,y,z){return x===y ? y : z;}
x,y,zの型は同じ
同じならnumberでもstringでもなんでもいい
224デフォルトの名無しさん:2012/10/11(木) 23:20:15.99
VB、C#、F#、C++/CLI、F#、Powershell、TypeScript
MSの言語設計センスは神懸ってるよな
玩具のSmallBasicですら非常にバランスのいいちゃんとした言語だし
どっかのGoogleとはえらい違いだ
225デフォルトの名無しさん:2012/10/11(木) 23:29:06.34
型を二回書くだけでツールがいろんなことをやってくれる
クラスやメソッドや引数の細かい情報までを
キー一押しまたは何もせずに表示してくれる
これほどすばらしい機能は他にないよ
君らは天才だから膨大な量のリファレンスを丸暗記して
書いたクラスのメンバの引数までも完全把握してるんだろうけど
俺みたいな凡人は記憶力弱いから無理なんだよ
言語開発者も天才ばかりだから俺みたいな凡人の苦労はわからない
凡人向け開発ツールを天才たちは作ってくれないから自分で作るしかない
だからこそ型情報を全力で守らなければならないのだよ
型を軽視する言語は天才にしか扱えないんだよ
226デフォルトの名無しさん:2012/10/11(木) 23:34:15.63
<T>を軽視する言語は今すぐ<T>を追加しろー
227デフォルトの名無しさん:2012/10/11(木) 23:36:59.53
Playgroundって開発環境として提供されないのかな
デモ用にしておくにはもったいない出来
228デフォルトの名無しさん:2012/10/11(木) 23:42:34.36
googleの言語、開発ツールは2流だよね
229デフォルトの名無しさん:2012/10/12(金) 05:50:01.30
>>223
http://www.typescriptlang.org/Playground/
function fn (x: number, y: number, z:number) : number {
return x===y ? y : z;
}

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

呼び出す側での型キャストもどきが必要になるから
あんま使い勝手良くならないんだと感じる…
型はあるんだけど、それを演じて示す prinf にあたるものが欠けてるような
230デフォルトの名無しさん:2012/10/12(金) 06:09:05.61
>>223
多相型も知らんの?馬鹿ですねー
それくらい楽勝で型推論できる
231デフォルトの名無しさん:2012/10/12(金) 11:27:47.74
function<T>(x: T, y: T, z: T){return x===y ? y : z;} だな
ジェネリックは早期に導入予定
232デフォルトの名無しさん:2012/10/13(土) 12:34:14.40
interface console {
time(obj:string);
}

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

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


いうほどジェネリックとかは簡単じゃない
233デフォルトの名無しさん:2012/10/13(土) 12:56:14.51
使い方が間違ってるだけ。consoleはフィールドなのにinterfaceとして
宣言するのはおかしいと思わないのか?
フィールドに型を付けるにはdeclare varを使うけど、TypeScript組み込みのと重複するから
追加したかったらTypeScriptのlib.d.tsを編集する必要があると思う。
234デフォルトの名無しさん:2012/10/13(土) 16:27:05.19
そんなには、間違ってないよ。
ArrayとかConsoleとかFunctionとか、組み込みオブジェクトは
interfaceで定義されていて(lib.d.ts)、同名のinterfaceを定義することで
拡張することが可能になってる。
たとえばjQueryプラグインはinterface JQueryを別途作れば足せる、というようにね。

ただ、組み込みクラスに対する拡張は挙動が変(Consoleに限らずArrayとかも)で
これはただたんなるバグなので次版では直してくるでしょう。
235デフォルトの名無しさん:2012/10/13(土) 18:23:55.40
ちょっと触ってみたけど
構造的部分型を採用してるとこはポイント高いね
236デフォルトの名無しさん:2012/10/13(土) 18:36:56.77
VSのプラグインって動作が怪しいねえ。
インストールするとVSが起動時に例外をスローして落ちるようになった…
237デフォルトの名無しさん:2012/10/14(日) 16:33:16.37
http://stackoverflow.com/questions/12869055/does-typescript-support-touchevent

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

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

http://www.w3.org/TR/2011/WD-touch-events-20110505/
238デフォルトの名無しさん:2012/10/15(月) 22:18:36.69
https://github.com/scripted-editor/scripted

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

http://dist.springsource.org/release/SCRIPTED/Scripted2.mov

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

http://sourceforge.jp/magazine/12/10/15/0559236
239デフォルトの名無しさん:2012/10/18(木) 19:19:00.00
そんな事よりDartしようぜ!
240デフォルトの名無しさん:2012/10/18(木) 21:23:36.92
TypeScriptの変換後のJavaScriptコードの美しさを見たら
Dartなんかクソほどの価値もないことがわかる
241デフォルトの名無しさん:2012/10/18(木) 21:37:20.58
TypeScriptは、JavaScriptは中間言語とか抜かしてる馬鹿へのアンチテーゼ
242デフォルトの名無しさん:2012/10/19(金) 00:35:48.55
JSはネットのbytecodeか?
http://brendaneich.github.com/Strange-Loop-2012/#/
243デフォルトの名無しさん:2012/10/19(金) 03:50:20.03
>>242
JSがとんでもない言語になりそうな予感・・・
読んでてちょっと笑ってしまったw
244デフォルトの名無しさん:2012/10/19(金) 17:14:46.55
お花畑すぎて吹いた
245デフォルトの名無しさん:2012/10/20(土) 15:42:08.05
TypeScript 基本的には好きなんだが、もう少し、記述方法に制限を掛けて欲しかったね。
この言語仕様だと、いろいろな表記が可能だから、プログラムが読みにくくなりそう。
246デフォルトの名無しさん:2012/10/20(土) 22:52:25.76
JavaScriptが通らないといけないという大前提があるから仕方ない
247デフォルトの名無しさん:2012/10/20(土) 23:24:57.14
Web以外で使いたいから、int64_tに相当するのも欲しいけど、
Javascriptにコンパイルできなくなるしな。
248デフォルトの名無しさん:2012/10/21(日) 19:07:30.03
Dartみたいに糞JavaScriptを吐いていいならエミュレーションで実装できるよ
249デフォルトの名無しさん:2012/10/21(日) 22:28:37.40
プログラムファイルに、#lang r6rsみたいに書き込んで
文法チェック切り替える言語もあるね。
250デフォルトの名無しさん:2012/10/23(火) 18:49:47.35
PowerShellをTypescriptで置き換えよう(回帰)
251デフォルトの名無しさん:2012/10/29(月) 15:04:42.13
モジュールの下に宣言したインターフェイスを
モジュールの外のクラスで実装するにはどうしたらいいんだろう
252デフォルトの名無しさん:2012/11/10(土) 18:01:12.67
高度に発達したプリプロは言語と見分けがつかない
253デフォルトの名無しさん:2012/11/10(土) 18:03:26.18
>>242-244
一応言っておくが、ブレンダン・アイクは
オリジナルのJavaScript(当時livescript)の開発者だぞ
254デフォルトの名無しさん:2012/11/10(土) 21:30:45.70
JavaScriptがこれほど使われてるのはJavaScriptが言語として優れているからでは決してないし
むしろクソ言語を生み出した元凶じゃないか
255デフォルトの名無しさん:2012/11/10(土) 22:20:26.75
クロージャがなければ即死だった
256デフォルトの名無しさん:2012/11/10(土) 22:43:49.37
組込み言語だけど表現力もあるし地雷原もある素晴らしい言語。
JavaScript 「再」入門
https://developer.mozilla.org/ja/docs/JavaScript/A_re-introduction_to_JavaScript
JavaScript Garden
http://bonsaiden.github.com/JavaScript-Garden/ja/
Googleスタイルガイド
http://cou929.nu/data/google_javascript_style_guide/
構文は簡潔ではあるよね。
257デフォルトの名無しさん:2012/11/10(土) 23:29:28.38
こんだけ普及するとこれを思い出さずにはいられない
http://monobook.org/wiki/Bjarne_Stroustrup_%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%93%E3%83%A5%E3%83%BC
258デフォルトの名無しさん:2012/11/11(日) 18:39:09.11
>>254
言語としてはそれほど悪くないよ。
Perl, PHP, VBと比べたら天使が舞い降りてきたみたいなもん。

まあブラウザ上は非互換や過去の遺物で悲惨みたいだけど。
259デフォルトの名無しさん:2012/11/11(日) 18:39:56.66
>>255
もともとSchemeを導入する予定だったから、
クロージャ無しで設計されるのはありなかったな。
260デフォルトの名無しさん:2012/11/11(日) 20:26:06.73
>>258
天使とか言い過ぎだろ。
どちらかというと、馬鹿と鋏は使いようって感じだ。
261デフォルトの名無しさん:2012/11/11(日) 20:35:06.57
普通のスクリプト言語としては悪くないと思うが、
>>242で妄想してるように中間言語として使うなら明らかに失敗でしょ
数値型がdoubleだけとかありえん
262デフォルトの名無しさん:2012/11/11(日) 21:05:09.61
普通のスクリプト言語としてもウンコ > 数値型がdoubleだけ
263デフォルトの名無しさん:2012/11/11(日) 21:12:25.10
>>262
数値がdoubleだけってまじかよ。ありえんだろ。
264デフォルトの名無しさん:2012/11/11(日) 21:15:12.40
luaとかもそうだよ
32ビットに収まるうちは整数の誤差は出ないから大して問題ない
中間言語としては終わってるけど
265デフォルトの名無しさん:2012/11/11(日) 22:21:54.78
だよな
いまどきfloatとの使い分けくらい出来ないとな
ほんと腐ってるよ
266デフォルトの名無しさん:2012/11/11(日) 22:47:53.61
CのプログラムもJavascriptに変換してブラウザで実行出来る時代だぜ。
Emscripten + Chromeより速い言語処理系作れる奴なんてほとんどいないぜ?
267デフォルトの名無しさん:2012/11/11(日) 22:52:37.33
それで速いなら組み込みのshortとかlongとかfloatとか使えたらもっと遥かに速いぜ?
268デフォルトの名無しさん:2012/11/11(日) 22:55:12.22
GoogleのDartだってそういうのいちいちエミュレーションするのアホらしいから
独自のVMを搭載してるのに
269デフォルトの名無しさん:2012/11/11(日) 22:55:53.05
既にJITに全て任せる時代。
270デフォルトの名無しさん:2012/11/11(日) 22:57:19.87
NaClですね
271デフォルトの名無しさん:2012/11/11(日) 22:59:18.05
>>269
JITに任せたらJSでエミュレーションしてる64ビット整数の演算がハードウェア命令になるのか?w
272デフォルトの名無しさん:2012/11/11(日) 23:07:12.60
JavaScriptを中間コードとして使うときのコードの出力の仕方を標準化してしまって
それに基づいて処理すれば完璧な最適化が可能だろうけど
それやるとJavaScriptの意味が皆無だからな
JavaScript無関係に新しくWebVMみたいなのを策定して載せるのと何も変わらない
273デフォルトの名無しさん:2012/11/11(日) 23:07:36.29
一度Emscriptenのコードを読んでみると良い
274デフォルトの名無しさん:2012/11/11(日) 23:09:32.73
NaClですね
275デフォルトの名無しさん:2012/11/11(日) 23:09:59.11
>>273
思いっきりエミュレーションしてるがな
add一つに何行コード書いてるんだよw
276デフォルトの名無しさん:2012/11/11(日) 23:52:44.79
floatやshortはまだ我慢できるがbyte/int32/int64が無いのはだいぶ辛い
277デフォルトの名無しさん:2012/11/12(月) 01:11:39.10
unsignedも無いの?
278デフォルトの名無しさん:2012/11/12(月) 01:16:13.46
unsignedはいらんよ
実質同じなんだから
279デフォルトの名無しさん:2012/11/12(月) 04:04:19.31
>>276
ランタイムの実装依存だけど、TypedArray あるじゃん
280デフォルトの名無しさん:2012/11/12(月) 05:56:17.30
int32はあると思っていい
281デフォルトの名無しさん:2012/11/12(月) 10:47:29.84
実用上はint32はあると思っていいけど
オーバーフローしたら勝手にdoubleに化けたりするから
中間言語として使うのであれば結局単純に+をJavaScriptの+に変換するわけにはいかない罠
282デフォルトの名無しさん:2012/11/12(月) 11:22:02.82
>>281
元の言語でのオーバフローしたときの挙動と同じでなければいけないってこと?
それなら、たとえJavaScriptにint32が存在してたとしても、
そのint32のオーバーフロー時の挙動が元の言語の挙動と違う可能性があるんだから、
そのまま+をJavaScriptの+に変換できない可能性があるってことになるよね?
283デフォルトの名無しさん:2012/11/12(月) 20:24:35.99
>>281
中間言語とかなぜ出てきたかわからんが、厳密に規約でビット長他決められてるやん
284デフォルトの名無しさん:2012/11/13(火) 12:41:04.95
このスレでなぜ出てきたかわからんというのがわからん
285デフォルトの名無しさん:2012/11/13(火) 18:54:04.52
使ってみたいからExpressにプラグイン入れたんだけど
新規ファイルでtsはでてきたんだけどソースの色とか変わらないのは仕様なのかな?
Expressだと駄目?
286デフォルトの名無しさん:2012/11/13(火) 22:52:53.79
Express for Webで使えてるけど
287デフォルトの名無しさん:2012/11/13(火) 22:55:31.35
あれ?じゃインストールに失敗してるのかもやり直してきます
ども
288デフォルトの名無しさん:2012/11/14(水) 02:12:21.09
別の人だけど、VS Express 2012 for WebにTypeScript for VS 2012入れたら
新しいプロジェクト➡テンプレート➡VisualC#➡HTML Application with TypeScript
というのが出てきた。
289デフォルトの名無しさん:2012/11/14(水) 10:09:34.19
JavaScriptのようなクソレガシーに今後10年しばらく好き放題されると思うと
うんざりするから、.NETあたりにでも頑張ってほしい(´・ω・`)
速度特性のまったく読めない動的言語を基盤にしようなどと言い出した連中を死刑にしたいマジで

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

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

C++や他の言語でもマルチ開発ができる、
実際多数のアプリケーションがやってるということが最近忘れられがちっつーか
ウェブ界隈の連中は最初から知らないんじゃねえかとすら疑ってる(´・ω・`)
291デフォルトの名無しさん:2012/11/14(水) 10:18:25.07
PC以外もターゲットにするならネイティブ(Monoみたいなのも含めて)の方が
ずっとクロスプラットフォームだしな
292デフォルトの名無しさん:2012/11/15(木) 16:44:21.21
まあ今後はJavascript優勢になるのは間違いないよ。
293デフォルトの名無しさん:2012/11/15(木) 16:52:42.86
Googleさんが全力で阻止してくれます
294デフォルトの名無しさん:2012/11/15(木) 17:06:46.63
>>289
黙れクズw
悔しかったらブラウザウィンドウ上で動くJSより素晴らしい言語とやらを作れよw
295デフォルトの名無しさん:2012/11/15(木) 17:17:58.33
CIL
296デフォルトの名無しさん:2012/11/15(木) 17:31:29.29
lljs.orgですねわかります
297デフォルトの名無しさん:2012/11/16(金) 16:31:48.18
今時何にそんな速度が必要なんだ?お前ら
298デフォルトの名無しさん:2012/11/16(金) 17:11:53.17
ChromeOSですよ、お前さん。
299デフォルトの名無しさん:2012/11/17(土) 11:15:57.72
死ねゴミ共が
死ねゴミ共が
死ねゴミ共が
死ねゴミ共が
300デフォルトの名無しさん:2012/11/25(日) 17:30:36.83
a
301デフォルトの名無しさん:2012/12/06(木) 17:23:30.55
すっかり勢いなくなったな。
使ってる奴いないのかな
302デフォルトの名無しさん:2012/12/06(木) 21:11:42.70
goのときと同じ流れ
303デフォルトの名無しさん:2012/12/06(木) 21:36:17.41
書いてるが良くも悪くも普通
ある程度の規模になりそうなコードに使って素のJSよりいくらか楽になるくらい
304デフォルトの名無しさん:2012/12/12(水) 19:24:34.39
個人的には好きだけど
Javaっぽい文法なんで、C#、ActionScript、Java、Haxe辺りは変換できそう
そういえば、ABAさんがそんなことを書いていたような
305デフォルトの名無しさん:2012/12/19(水) 04:39:42.12
>>290
>だいたいLLVM→JavaScript変換なんぞまわりくどい真似やってる暇があったら最初からネイティブで出すわw
既成コードの使いまわす為だろうし、
まともなクロスプラットフォームなツールなんて実際のところjavaしかない
306デフォルトの名無しさん:2012/12/31(月) 17:51:30.87
307デフォルトの名無しさん:2012/12/31(月) 19:54:44.96
Win8ストアアプリでTypeScriptはないだろう。C#でいいわ。
Node.jsベースでTypeScript用のMVCフレームワークとかの方が受けると思う。
308デフォルトの名無しさん:2013/01/11(金) 08:19:27.67
>>297
> 今時何にそんな速度が必要なんだ?お前ら

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

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

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

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

>>307
C#は興味深い流れになっとるよね。
309デフォルトの名無しさん:2013/01/11(金) 08:29:49.69
nativeの世界には、CPU全コアフルロードになるコード書いて
タスクマネージャ眺めて喜んでるような変態がいるんだぜ(´・ω・`)
310デフォルトの名無しさん:2013/01/11(金) 09:20:58.30
暇人乙
311デフォルトの名無しさん:2013/01/11(金) 16:24:50.41
>>308
> HTML5がnative置き換えるだの言う奴らは
> その程度の仕事しかしていない

それも視野狭窄だわな。
312デフォルトの名無しさん:2013/01/13(日) 11:42:45.55
科学技術計算なんてループぶん回して配列にアクセスしまくるだけなんだから
スクリプト言語くらい楽に書けて普通のネイティブコードが吐けてFortranと同じくらい速い言語があってもいいのに
Fortranに対するTypeScriptみたいなの作れないかな
313デフォルトの名無しさん:2013/01/13(日) 12:34:31.97
Fortressとかx10とかあるじゃん
314デフォルトの名無しさん:2013/01/15(火) 12:20:49.20
TypeScriptで分数クラスを作ってみた。
楽しい。
315デフォルトの名無しさん:2013/01/15(火) 12:27:55.49
gist.github.com/4520496
書いたソース。
忍法帳ってなんだこれめんどくさい。
316デフォルトの名無しさん:2013/01/15(火) 12:32:50.69
TypeScriptで演算子のオーバーライドって実装されるんだろうか?
317デフォルトの名無しさん:2013/01/15(火) 13:20:12.64
Andersは演算子は対称であるべきだからstaticにしろ派だから難しいんじゃないかな。
現に、インスタンスメンバにするのが自然な()や[]には対応してる。
手っ取り早く実装するなら+などもインスタンスメンバにするのが楽だけど、それは気に入らないんだろ。
でもC#みたいにクラスメンバにすると静的解析に依存することになるから、
オペランドの型がコンパイル時に分かってる場合と分かってない場合で
演算子の動作が変わってもいいのかとかいろいろ問題がありそう。
318デフォルトの名無しさん:2013/01/15(火) 13:50:04.10
仮にインスタンスメンバでも、
hoge + 1 (TS) を hoge.opAdd(1) (JS) に変換するのはhogeの型がプリミティブ型でないことが
静的解析で分かってるならいいけど、分からない場合は hoge + 1 (JS)にするしかないから
結局静的解析の可否で挙動が変わってしまう
無理だな
319 忍法帖【Lv=2,xxxP】(1+0:5) :2013/01/15(火) 19:03:58.21
即時関数の書き方教えて
320デフォルトの名無しさん:2013/01/15(火) 20:59:16.21
その辺の非tsな外部jsを読み込むこととかできるの?
321デフォルトの名無しさん:2013/01/15(火) 22:33:04.63
>>319
(()=>{alert("a");})();
>>320
普通にできるというかtsから変換したjsと普通のjsを普通にHTMLのscriptタグに並べるだけ
型チェックを活かしたいならインターフェイスを定義する
322 忍法帖【Lv=2,xxxP】(1+0:5) :2013/01/16(水) 11:23:36.38
>>321
さんくす!後でやってみる!
323デフォルトの名無しさん:2013/01/16(水) 13:25:03.90
typescriptを使うことでどのくらいコード量が減るかサンプル見たいのかける天才いる?
324デフォルトの名無しさん:2013/01/16(水) 14:42:50.94
>>323
コード量はそんなに変わらんだろ?
CoffeeScriptなんかとは違うんだぞ。
325デフォルトの名無しさん:2013/01/16(水) 15:02:00.76
公式ページのPlaygroundのサンプルコードで十分だろ。
TypeScriptが吐くコードは人間が書いたのと見分け付かん。
コード量はそう変わらんがJavaScriptでクラス作るときの
変なバッドノウハウによるノイズが無くなる。
326デフォルトの名無しさん:2013/01/16(水) 18:34:00.59
ヘルスバーグもここまでか、、、
327デフォルトの名無しさん:2013/01/17(木) 07:05:00.82
仕様策定はまだ続いてるが、既にMSのJavascript開発で
工数削減に役立ってるってのがすげーよな
328デフォルトの名無しさん:2013/01/18(金) 21:26:48.39
こんなのがでてたのか・・・
javascriptは毛嫌いでやらなかったが、これならおぼえたいと思ってしまった。
329 忍法帖【Lv=3,xxxP】(1+0:5) :2013/01/20(日) 16:38:16.14
>>321
Supplied parameter do not muchなんちゃらってなったよ……
330デフォルトの名無しさん:2013/01/21(月) 15:29:22.68
WebGL.d.ts
Three.d.ts
既にあるな
考えることはみんな同じなんだ
331デフォルトの名無しさん:2013/01/21(月) 17:02:59.97
アンダース氏が設計した新言語による次世代JavaScript開発とは?
http://www.atmarkit.co.jp/ait/articles/1301/18/news087.html
332デフォルトの名無しさん:2013/01/21(月) 17:33:01.79
Visual Studio 2012 入れなくても使えるようになったら使う
333デフォルトの名無しさん:2013/01/21(月) 17:34:53.08
Node.jsで動くコンパイラとemacsプラグインが提供されてる
334デフォルトの名無しさん:2013/01/21(月) 20:26:22.63
そもそもTypeScriptはNodejsで動かすものであってVisual Studio 2012対応はついで。
335デフォルトの名無しさん:2013/01/22(火) 01:44:49.47
>>308
本当に簡単なレベルのことで金儲けできた方がいいじゃない
そんなにプロセッサをブンブン振り回したりしたら、地球環境に優しくないよ
その昔、ファミコンレベルの演算能力で月まで行けたんだから、
もっと低次元なレベルで解決できる問題なんて沢山あるじゃない
336デフォルトの名無しさん:2013/01/22(火) 01:46:31.89
ていうか、5年ぐらい前ってM$のIEがweb屋たちに叩かれまくってよね
337デフォルトの名無しさん:2013/01/22(火) 12:41:06.54
>>333
ありがとう
それなら手を出してみる
338デフォルトの名無しさん:2013/01/22(火) 16:29:00.89
typescriptのサイトのget itページ行けば、node.jsの方が先に書いてあるんだけどな。
339デフォルトの名無しさん:2013/01/22(火) 16:34:27.49
UTF-8 で書いたソースで
console.log('漢字');
を Windows の cmd.exe で実行すると
cp932 で出力されてるっぽいんだけど
どこで何が行われているの?
日本語の扱いは良きに計らってくれるの?
340デフォルトの名無しさん:2013/01/22(火) 16:37:14.99
誤爆?
341デフォルトの名無しさん:2013/01/22(火) 21:21:29.29
342デフォルトの名無しさん:2013/01/23(水) 00:42:59.48
モジュール化って可能なん?
AMDみたいのはいやづら
343デフォルトの名無しさん:2013/01/23(水) 21:16:11.05
>>342
モジュールの定義には対応しているが、Javascript自体に存在しないので
Javascript上でよく見られるモジュール定義もどきとして書き出される。
node.js互換の形で。
344デフォルトの名無しさん:2013/01/24(木) 18:34:42.38
TypeScriptは結局JavaScriptの問題を解決してないから萎えた。
ECMAScriptもだが、特にmodule、あれで大規模開発が可能だと本当に思ってるのか。

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

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

正直、断言するけどActionScript=ECMAScript 4ルーツのHaxeを使ったほうがいい。
345デフォルトの名無しさん:2013/01/24(木) 18:35:48.71
TypeScript クイックガイド - phyzkit.net
http://phyzkit.net/typescript/

> この 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

あとはこれも萎え要因

https://sites.google.com/site/jun1sboardgames/programming/typescript_module
> 「/// <reference path="" />の参照指定はあくまでもコンパイル時のもので、
> 実行時の依存関係の解決は君自身の責務だよ」
346デフォルトの名無しさん:2013/01/24(木) 18:40:53.35
>>344
大規模開発支援より既に広まってる処理系群との互換性が大切
というのがECMAScript、というかアイクの公式見解。
ただ将来的にECMAScript 4の方向が否定されたわけではない。
347デフォルトの名無しさん:2013/01/24(木) 20:44:56.21
>>343
それがAMDだ
348デフォルトの名無しさん:2013/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デフォルトの名無しさん:2013/01/25(金) 17:30:54.47
CofeeScript のスレはありますか?
350デフォルトの名無しさん:2013/01/25(金) 17:34:49.08
聞く前に検索ぐらいしろ
351デフォルトの名無しさん:2013/01/25(金) 17:44:22.96
>>348
TypeScriptのこと何にも知らないけど、一つだけ言える。

そのコロン、キモイ。
352デフォルトの名無しさん:2013/01/25(金) 17:54:45.58
>>351
プログラミング言語を能力でなく感情でしか語れないのは悲しいね。
少なくともJScript.NETよりは遥かにスマートだと思うよ。
353デフォルトの名無しさん:2013/01/25(金) 18:07:47.42
>>352
> var m: M = M;

俺には無理だわ。
354デフォルトの名無しさん:2013/01/25(金) 19:49:38.54
きもっ
355デフォルトの名無しさん:2013/01/27(日) 01:34:33.18
>>353
お前の個人的な感情とかどうでもいいんで。帰って。どうぞ。
356デフォルトの名無しさん:2013/01/28(月) 14:54:47.56
個人的な感想ということにしたいんですね
357デフォルトの名無しさん:2013/01/28(月) 17:37:07.24
>>348
pascalみたいや
358デフォルトの名無しさん:2013/01/28(月) 17:42:07.96
俺もTypeScriptは知らんけど、「変数名 : 型」「変数名 : 型 = 値/interface closure」あたりまでは想像できるが、
var m: M = M;の意味がわからんな。
359デフォルトの名無しさん:2013/01/28(月) 18:07:19.98
書いてて楽しくない言語は駄目だ
Matz
360デフォルトの名無しさん:2013/01/28(月) 22:03:06.92
Rubyは書いていて楽しくない。
単純な誤字脱字がその場で検出できない。

実行してエラーになって初めて認識できる。
その頃には違うコードを見てるから
くだらない誤字脱字の場所を探さなければならない。
361デフォルトの名無しさん:2013/01/28(月) 22:04:04.86
Rubyは楽しくない。
簡単なリファクタリングでさえ神経を使う。

範囲を選択し、場所を移動する。
頭ですぐに思いついたことを
すぐに実行できない。
362デフォルトの名無しさん:2013/01/28(月) 22:59:06.84
プログラミングの大部分が
コードを右から左へ動かすことに終始する
ダメプログラマにとっては死活問題だね。
そういうウンコプログラマ用の言語じゃないんだRubyは。
363デフォルトの名無しさん:2013/01/28(月) 23:25:07.33
var m:M = M;の後ろのMはMのsingleton moduleになるらしい。
そう定義されたmも同じ。だからm.aはmoduleローカル変数のように振る舞う。
364デフォルトの名無しさん:2013/01/29(火) 10:50:56.61
>>362
ダメプログラマ御用達のRailsがなかったら消滅してる言語のくせにw
365デフォルトの名無しさん:2013/01/29(火) 10:54:20.21
node.js + coffeescript + express で Ruby も Rails も要らなくなりそうな悪寒
366デフォルトの名無しさん:2013/01/30(水) 01:00:10.97
node.jsはウェブサーバーとしてはまだサーバー全体が
死ぬリスクが高いから商用としては微妙だけど、
C4K問題が発生しない設計だから
汎用じゃなくて専用のサーバーとしては十分ありだよね。

大規模なソフトウェアこそTypeScriptが生きる。
367デフォルトの名無しさん:2013/01/30(水) 02:28:35.12
> node.jsはウェブサーバーとしてはまだサーバー全体が
> 死ぬリスクが高いから商用としては微妙だけど、

それそうとう技術力低いだろw
例外の使い方の基礎さえ知ってれば
落ちることはない。
368デフォルトの名無しさん:2013/01/30(水) 02:29:57.39
あ、例外の基礎を知ってるっていうのは、
try-catchは必要最小限で十分ということを
知ってるって話な。

俺、try-catch使えるぜ!って感じで
やたらめったら入れる奴は
基礎がわかってない。
369デフォルトの名無しさん:2013/01/30(水) 05:06:00.81
ONERRORGOTOですねわかります
370デフォルトの名無しさん:2013/01/30(水) 10:35:04.25
nodes.jsが単一プロセス、単一スレッドで動いてるから
プログラムのミスや例外などで処理が止まるとサーバー自体も止まるという話なだけ。

nodejs側の問題なのでTypeScriptとは直接関係ない。
371デフォルトの名無しさん:2013/01/30(水) 10:41:07.50
例外処理ちゃんとやってても落ちるもんは落ちる
ましてC++で拡張できたりするんだし
372デフォルトの名無しさん:2013/02/28(木) 22:14:41.16
Windows8 64bit、VS2012 Express for Webでプラグイン導入できた人いる?
インストールしてもテンプレートに出てこない。。0.8.1.1、0.8.2で試した。
ちなみにWindows7(32bit)ではうまくいった。
373デフォルトの名無しさん:2013/02/28(木) 22:23:26.87
ごめん解決した。
昨日0.8.3がリリースされてたみたいで、それ入れたら出てきた。
374デフォルトの名無しさん:2013/03/03(日) 16:07:40.23
以前の奴でもインストールされたとこにあるプラグインを自分でクリックすれば
インストール出来た
375 忍法帖【Lv=2,xxxP】(1+0:5) :2013/03/10(日) 00:04:31.42
Eclipseで使える?
376デフォルトの名無しさん:2013/03/16(土) 17:59:38.77
Rubyが楽しいってデマ誰が広げたんだろうね
377デフォルトの名無しさん:2013/03/16(土) 18:48:50.43
オレ
378デフォルトの名無しさん:2013/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デフォルトの名無しさん:2013/03/17(日) 17:17:30.94
エラーメッセージが不親切だけど、基本的には単にクラス名の衝突だと思う。
class Test { constructor() {} } をコンパイル単位に含めるなら、
declare class Test { constructor(); } は必要ないよ。
それかもしかして C/C++ プロトタイプ宣言みたいな使いかたしてない?
380デフォルトの名無しさん:2013/03/17(日) 17:32:44.12
>> 376
彼らは typo したり runtime error 出したり、半年前に自分が書いたコードが読めなくなって全部書き直したり、
クソ遅い処理系にほとんど意味のない最適化を施すのが、楽しくて仕方がないんだよ。
我々には理解できない性癖だけど。
381デフォルトの名無しさん:2013/03/17(日) 17:41:44.97
>>379
.d.tsファイルの仕様的に、C++っぽく使えてもいいのになぁっていう感じでした
別にエラーにしてくれなくてもいいのに。C++だってリンクするまでは衝突するかどうかわからないんだし
382デフォルトの名無しさん:2013/03/17(日) 18:21:46.95
>>381
TypeScript の declareは、C/C++ のプロトタイプ宣言というより extern に近いものだからね。C/C++ でも

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

が衝突するのと似たような理由だと思う。
383デフォルトの名無しさん:2013/03/17(日) 18:30:21.10
あっ違うわ 
extern void hoge(void);
void hoge(void){}
は別に衝突しないや
最近 C/C++ 使ってないから忘れた
384デフォルトの名無しさん:2013/03/17(日) 20:50:40.00
>>378
TypeScriptにおけるdeclareというのは
コンパイルするソースコード中にその定義が含まれない(既に外部で定義されている)ことを意味するから、
そのソースコード中にその実体を定義するのは言語仕様上矛盾している。
385デフォルトの名無しさん:2013/03/21(木) 09:52:33.83
HTML5デモ「日本全国花粉飛散マップ」を作って分かった
CreateJSとTypeScriptでの効率的な開発手法
ICS LAB
http://htn.to/7m1sEe5
386デフォルトの名無しさん:2013/03/28(木) 17:27:02.10
javascript全く知らないんだけどtypescriptから始めても大丈夫?
387デフォルトの名無しさん:2013/03/28(木) 17:44:57.14
大丈夫
388デフォルトの名無しさん:2013/03/28(木) 20:27:05.61
情報が少なくて大変なだけだろ。JavaScriptからやれ。
TypeScriptはJavaScriptのスーパーセットだからJavaScriptは使えなければならない。
389デフォルトの名無しさん:2013/03/28(木) 20:33:10.64
どっちやねん
390デフォルトの名無しさん:2013/03/28(木) 20:35:45.88
大丈夫だが特にメリットがない、でFA
・JavaScriptの方が環境的な意味で遥かに学習しやすい
・JavaScriptから始めてTypeScriptに乗り換えても学んだことは厳密に100%活かせる
391デフォルトの名無しさん:2013/03/28(木) 21:06:08.00
>>390
なるほ、資料少ないのは辛いな。じゃばすく覚えてからにするよサンクス
392デフォルトの名無しさん:2013/03/28(木) 22:01:28.17
クラスやモジュールのような覚えなくても済むノウハウは結構あるから
さらっとJavaScript入門を流したらあとはTypeScriptでいいと思う
393デフォルトの名無しさん:2013/03/28(木) 22:06:31.40
これ自体をやる必要があまりない。
東京人が地方の方言を真似するようなもの。内容は違わない。
394デフォルトの名無しさん:2013/03/28(木) 22:14:55.65
ES6もあるし、やる必要ないなんてことは無いでしょ
コレ一本で行くってんなら別だろうけど
395デフォルトの名無しさん:2013/03/29(金) 11:31:32.02
同じ事考えてたんだけど
やっぱりやるんならjavascriptからなのか・・・
396デフォルトの名無しさん:2013/03/29(金) 14:38:18.50
やっと分かったJSのthis、みたいなブログの記事よく見るけど、もう頑張ってJSやらんでもTypeScriptでいいだろ。
397デフォルトの名無しさん:2013/03/29(金) 14:54:17.77
いいだろうとかじゃなく
Javascriptなら基本から学ぶ教材がその辺にあるけど
TypeScriptの奴ってどこもJavascriptがわかってる事が前提の奴だよね
知らない人が学ぶのは不可能
398デフォルトの名無しさん:2013/03/29(金) 15:34:07.31
JSがどうにもバッドノウハウだらけの言語だから、それを隠蔽すべくTypeScriptはじめ多数のベターJSがある。
バッドノウハウでも覚えた方がいいって考えもあるだろうけど、そんな暇あるなら別の勉強した方が良いと思う。
399デフォルトの名無しさん:2013/03/29(金) 18:45:51.55
JavaScriptを最初の言語にするのには賛成しかねる
ほんとに最初ならJavaかC#あたりなんじゃない
400デフォルトの名無しさん:2013/03/29(金) 23:41:45.72
JQueryとかで数行書いてるだけだったら別に要らないんだよ。

Javascriptでライブラリを書き始めたらありがたみもわかる。
401デフォルトの名無しさん:2013/03/30(土) 09:47:55.91
Javascriptでライブラリを書く土方なんて居らんだろ
使い切りのクレクレ厨ならTypeScriptなんて不要
402デフォルトの名無しさん:2013/04/04(木) 17:53:37.15
403デフォルトの名無しさん:2013/04/04(木) 22:37:31.68
知らない事を知らないと言えるのは大事だな
404デフォルトの名無しさん:2013/04/28(日) 09:36:52.71
<reference path=" で探しに行くディレクトリを追加する方法はありますか?
../../lib/hogeとかあんまりやりたくないので
405デフォルトの名無しさん:2013/04/29(月) 09:27:46.21
>>404
インポート用のファイルを用意してそれを参照するか、コンパイルオプションで対応するしかないね
当然後者ではIntelliSenseが効かない

まだまだ駆け出しだから足りないものは多いよ
406デフォルトの名無しさん:2013/04/29(月) 11:25:33.76
0.9.0アルファ版を少し触った感想

BOM付きUTF-8では日本語が使えない。BOMなしUTF-8はOK、SJISはNG
Type[]はまだ使える。Arrayを拡張したい場合はinterface Array<T> { ...じゃないと駄目
構文チェックが厳格になった
407デフォルトの名無しさん:2013/04/30(火) 11:07:25.77
関数のシグニチャ、レシーバー(コンテキスト?)の型を規定することはできんのね
あとScalaのtraitみたいのがほしいなー。多重継承でもいいからお願いしますMS様
408デフォルトの名無しさん:2013/04/30(火) 12:17:01.31
目標はES6
409デフォルトの名無しさん:2013/04/30(火) 15:19:48.08
boolでいいじゃん
booleanとかいちいち打つのだるいわ
410デフォルトの名無しさん:2013/05/05(日) 11:25:44.32
ないなら作れよ
411デフォルトの名無しさん:2013/05/24(金) 07:01:20.91
0.9.0のソース上がってるな
412デフォルトの名無しさん:2013/06/19(水) 17:45:31.95
413デフォルトの名無しさん:2013/06/19(水) 20:33:35.85
414デフォルトの名無しさん:2013/06/20(木) 08:01:00.31
ジェネリクスは大きいな
415デフォルトの名無しさん:2013/06/21(金) 07:03:43.29
有名どころのライブラリ*.d.tsを大量配布してるサイトとかない?
416デフォルトの名無しさん:2013/06/21(金) 09:12:19.28
417デフォルトの名無しさん:2013/06/22(土) 02:14:14.01
まじか。これはGJというほかないわ
418デフォルトの名無しさん:2013/06/22(土) 10:46:36.28
テストはcoffeeでやろうかなあ
あんまり言語混ぜ混ぜもどうかと思うがtsでテスト書くのはちょっとだるい
419デフォルトの名無しさん:2013/06/22(土) 11:54:03.62
>>416
ありがと、助かるわー
420デフォルトの名無しさん:2013/06/26(水) 12:44:30.00
http://www.infoq.com/jp/news/2013/06/funscript
http://funscript.info

js を typescript の type providers で wrap して
その上に構築されたF#風言語らしいが…関数型言語好きやね
421デフォルトの名無しさん:2013/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デフォルトの名無しさん:2013/06/28(金) 08:32:18.10
前戯前に挿入するなってことじゃね?
423デフォルトの名無しさん:2013/08/09(金) NY:AN:NY.AN
424421:2013/08/10(土) NY:AN:NY.AN
入れ子型もいけるようになってたお
425デフォルトの名無しさん:2013/08/29(木) NY:AN:NY.AN
遅報だが

Announcing TypeScript 0.9.1.1
http://blogs.msdn.com/b/typescript/archive/2013/08/21/announcing-typescript-0-9-1-1.aspx

TypeScript 0.9.1.1 リリース 〜 v.0.9 からは待望の Generics がサポートに
http://blogs.msdn.com/b/chack/archive/2013/08/22/typescript-0.9.1.1-has-been-released-visual-studio-japanese-support.aspx

TypeScript 1.0 リリース間近 !? 〜 Web Essentials 3.0 における TypeScript サポート削除について
http://blogs.msdn.com/b/chack/archive/2013/08/27/typescript-support-on-visual-studio-and-web-essentials.aspx
426デフォルトの名無しさん:2013/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デフォルトの名無しさん:2013/10/01(火) 00:58:37.16
型チェックできないのはその理屈でいいけど動いてしまうのが問題だって話でしょ
いくら型指定するようにしていても、どうしても型なしで扱わざるを得ない部分は完全に無くなりはしない
結論としては、実行時に型チェックをするオプションが欲しい、でFA
428デフォルトの名無しさん:2013/10/01(火) 01:48:24.89
assert(typeof a == "number");
とかを自分で書けばいいんじゃないかね。
429デフォルトの名無しさん:2013/10/01(火) 22:31:49.92
Haskellあたりを見習って
もっと真面目に型推論をすれば解決
430デフォルトの名無しさん:2013/10/01(火) 23:02:22.72
JavaScriptのコードが通らなくなるからムリ
431デフォルトの名無しさん:2013/10/01(火) 23:32:22.09
>>426
> エラーにならずに12(number)っていう戻り値になるのは

でも実際は "12"(string) になるけどね
432デフォルトの名無しさん:2013/10/01(火) 23:45:41.39
え、なにそれウンコじゃん
やっぱCoffeeScriptにしとくわ
433デフォルトの名無しさん:2013/10/02(水) 00:09:46.78
まさに本末転倒w
434デフォルトの名無しさん:2013/10/02(水) 00:35:41.01
>>431
function g() : number
なのに"12"(string)になるわけねーだろ!
コード書いて試してみれば一目瞭然。
435デフォルトの名無しさん:2013/10/02(水) 06:56:10.44
JSは文字列と数を足した結果は文字列だし
TypeScriptは勝手にキャストしたりしないから
当然gの戻り値は文字列だよ
typeofで調べてみれば?
436デフォルトの名無しさん:2013/10/02(水) 07:11:48.03
function g() : number { return ((x,y) => x + y)(1, "Hello World"); }
の戻り値は "1Hello World"
437デフォルトの名無しさん:2013/10/02(水) 08:23:16.90
問題解決するためのイディオムでも考えたほうが建設的
438デフォルトの名無しさん:2013/10/02(水) 09:03:59.82
解決策:あてにならない形注釈は捨てて
簡潔なコードを書くためにCoffeeScriptを使う
439デフォルトの名無しさん:2013/10/02(水) 17:39:39.35
ただでさえJSerの無能率は高いのに
ドカタが好むエッセンスを振りかけたTypeScriptに
純度の高いバカが集まるのは必然だな
440デフォルトの名無しさん:2013/10/02(水) 18:27:41.90
Coffee読みづらいわ
RubyやScalaを意識してるんだろうけど、あの手の省略大好き言語の中でも
ずば抜けてセンス悪い
441デフォルトの名無しさん:2013/10/02(水) 18:37:36.83
ただでさえ意味不明になりがちなRuby/Scala系のスタイルに
さらにインデント記法を混ぜたのが大失敗
TypeScriptくらいかっちりしたのをそのままインデント記法にするか、
Ruby/Scalaみたいに他省略しまくりでもbegin/endだけは省略しないのが省略の限度だよ
442デフォルトの名無しさん:2013/10/02(水) 21:27:06.14
具体的なコードで欠点を指摘できないと
単なる決めつけで終わってしまうね
443デフォルトの名無しさん:2013/10/02(水) 22:47:27.75
変数の型と違う型の値が
簡単に入ってしまうのは地雷すぎる

これに比べれば大抵のことは許せる
444434:2013/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デフォルトの名無しさん:2013/10/03(木) 00:50:52.12
>>435へのアンカーを忘れた
446デフォルトの名無しさん:2013/10/03(木) 00:57:57.89
んなこと言い出したら既存JSライブラリに対する型宣言なんか全部当てにならんぞ
型が後付けである以上仕方のないことだし、それ故のメリットもある
447デフォルトの名無しさん:2013/10/03(木) 02:33:05.42
ECMAScriptも7になれば静的型チェックは入るんだよな。
ただ、7がリリースされるのは2017とかだろうから、それまでにTypeScriptが駆逐する
可能性はある。IEがネイティブサポートしたら、その可能性は高まる。
448デフォルトの名無しさん:2013/10/03(木) 16:10:49.88
静的型チェックで地雷とか、JavaScriptに何を求めてるんだろ
449デフォルトの名無しさん:2013/10/03(木) 16:23:23.19
太いうんこ出た
きもちECMA
450デフォルトの名無しさん:2013/10/03(木) 21:44:39.23
emscriptenやgwtやjs_of_ocamlのようなのだろ。
451デフォルトの名無しさん:2013/10/03(木) 21:49:10.52
いや全然違うだろ
基本的にJavaScriptを中間コードとして扱わず、ほとんど型チェックを行うだけ
どっちかというとjshintの類だ
452デフォルトの名無しさん:2013/10/10(木) 18:11:36.05
最新Windows用になったIEのネイティブサポートとかもう大局に影響しないだろ
453デフォルトの名無しさん:2013/10/11(金) 00:30:48.83
TypeScriptはザックリ言うと、ES6に静的型チェックと(それ故に必要な)Genericsを追加したものだな。
良い言語だと思うけどね。
454デフォルトの名無しさん:2013/10/11(金) 01:10:35.99
TypeScript、Haxe、Dartの三択だったらどれ?
CoffeeScriptはもうやってるんだけど、新しいのを覚えたい。
455デフォルトの名無しさん:2013/10/11(金) 01:58:34.53
方向性がそれぞれ違うから用途と目的によるとしか。
ざっとググってみてもピンと来ないならTypeScriptでいいんじゃね
456デフォルトの名無しさん:2013/10/11(金) 07:56:33.81
JavaScriptが大嫌いで無茶苦茶に汚してやりたいって人にはDart
監禁されて二人だけの世界で言いなりにされたいって人にはHaxe
どちらにも当てはまらない人にはTypeScript
457デフォルトの名無しさん:2013/10/11(金) 09:53:28.96
JavaScriptは一斉排除だ!って環境ならなんでもいいよね
親和性を取るならTypeScriptは書きやすい
458デフォルトの名無しさん:2013/10/12(土) 09:06:04.50
TypeScriptはVisualStudioで開発したら世界が変わるで。

記述ミスをビルド前に指摘してくれるのはうれしい。
459デフォルトの名無しさん:2013/10/12(土) 09:44:08.17
VisualStudioでプロジェクト作らずに直接TSファイル開くと
依存関係から仮想プロジェクト機能が働くんだけど、これが便利すぎる
460デフォルトの名無しさん:2013/10/15(火) 05:56:27.51
ざけんなよMac無視かよ
461デフォルトの名無しさん:2013/10/15(火) 13:34:25.50
>460
WebStormがあるじゃないか!
462 ◆9Zst2CqO/Y :2013/11/15(金) 12:39:15.52
盛り上がってるね。
463デフォルトの名無しさん:2013/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デフォルトの名無しさん:2013/11/20(水) 08:21:22.89
JSXのことを完全に忘れていたのだがどうなったのだろう
465デフォルトの名無しさん:2013/11/20(水) 21:42:03.04
クラスを定義するために宣言ファイルと定義ファイルを用意するとして
この定義ファイルから同宣言ファイルを参照すると面倒が起きやすい点がなんとかなればな
(一応大体の事は対応できるけども)
466デフォルトの名無しさん:2013/11/20(水) 22:23:09.98
JSXはコンパイル後の出力が汚いだろ
467デフォルトの名無しさん:2013/11/21(木) 01:51:19.26
Emscriptenでどの程度まで出来るのか今一分からんな。
DOMをいじれるのかとか
468デフォルトの名無しさん:2013/11/21(木) 03:16:11.46
TypeScriptの => を使っても、結局イベントハンドラとかのthisのややこしさは
カバーしきれない感じなんだけど、Haxeはもっと上手くごまかしてるの?
469デフォルトの名無しさん:2013/11/21(木) 08:23:31.53
>>467
https://github.com/kripken/emscripten/tree/master/system/include
ヘッダー眺めればざっくりとは分かる
470デフォルトの名無しさん:2013/11/21(木) 15:28:25.78
test
471 忍法帖【Lv=6,xxxP】(2+0:5) :2013/11/21(木) 17:19:16.16
test
472デフォルトの名無しさん:2013/11/23(土) 11:38:28.14
>>468
haxeは、クロージャの中でもレシーバー(this)は変更されない。
なので、jQuery.map()等で、クロージャでDOM要素に直接触る場合は、第二引数まで指定して受け取る必要がある。

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

こじんてきにこのきょどうにふまんはないです。
473デフォルトの名無しさん:2013/12/06(金) 23:10:29.06
0.9.5リリース上げ!
動作の安定化とビルド時間の短縮が主な変更点かな。
474デフォルトの名無しさん:2013/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デフォルトの名無しさん:2014/01/07(火) 20:26:38.95
今年は1.0くるかね
476デフォルトの名無しさん:2014/01/08(水) 10:26:43.50
試しにTypeScriptでMongoDBのクエリを解釈するサンプルを作ってみた。
https://github.com/kanryu/puremongo

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

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

お陰でvar self = this; なんて回避コードがときどき必要になるね。
477デフォルトの名無しさん:2014/02/01(土) 09:36:07.23
TypeScriptとES6の関係がわからない。
ES6が普及したら いらない子になっちゃうの?
誰か背中を押してくれ
478デフォルトの名無しさん:2014/02/01(土) 11:17:58.87
ES6なんてまだ現実的な話じゃないけど、そこで悩むくらいならC++かDartあたり選ぶんじゃないか
479デフォルトの名無しさん:2014/02/02(日) 00:52:15.85
http://typescript.codeplex.com/wikipage?title=Roadmap
http://teppeis.hatenablog.com/entry/typescript-webdbpress75

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

ES6に変換出来るようにするみたいだし、潰しは効くんじゃないか。
480デフォルトの名無しさん:2014/02/02(日) 12:27:45.35
>>479
なるほどー
481デフォルトの名無しさん:2014/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デフォルトの名無しさん:2014/02/21(金) 22:08:33.50
-dオプションで.d.tsファイルが作れるのはすごく便利なんだけど
参照ファイルも全部記述してくれるせいで.d.ts側には必要ないものまで参照しちゃうな

その.ts内だけで使える/// <reference同等の参照があればいいんだけどな
複数ファイルをまとめてコンパイルした時に他のファイルには影響が出ないようならなお良い
483481:2014/02/22(土) 03:56:10.70
上のエラーだが、とんでもない原因だった。

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

これは気づかんで……。
484デフォルトの名無しさん:2014/02/22(土) 11:11:21.74
馬鹿には無理
485デフォルトの名無しさん:2014/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デフォルトの名無しさん:2014/02/22(土) 19:54:29.18
うおおおはやく発展しろおおおおお
みんな使おうぜええええええ
Coffee構文に対応したコンパイラとか出てこないかな
もはや別言語か
487デフォルトの名無しさん:2014/02/22(土) 22:43:38.36
0.9.5が出てからぱったり更新が止まったな
488デフォルトの名無しさん:2014/02/23(日) 03:41:31.24
0.9.7についてのドキュメントが出てきてる。
489デフォルトの名無しさん:2014/02/26(水) 10:39:45.40
http://blogs.msdn.com/b/somasegar/archive/2014/02/25/visual-studio-2013-update-2-ctp2.aspx
TypeScript 1.0 RCが出たよ。

あと、
> We are also now adding TypeScript support into the Visual Studio 2013 product, starting with Update 2.
490デフォルトの名無しさん:2014/02/26(水) 21:09:18.22
おおー きたー
491デフォルトの名無しさん:2014/02/27(木) 00:02:02.15
コンストラクタを見せかけだけでいいから非公開にしたいんだけど
private constructorがコンパイルエラーなのがつらい
面倒になるから出来る限り宣言ソースは直に触れたくないんだよなぁ
492デフォルトの名無しさん:2014/02/27(木) 10:19:24.32
>>491
それは仕様バグなのか何らかのポリシーなのかわからんね。
493デフォルトの名無しさん:2014/02/27(木) 17:33:27.83
JavaScriptの仕様上コンストラクタの隠蔽だけは実現不可能だからだろうね
今のところ非公開要素のコンパイル後のコードはオープンな状態だし、許容してくれるようになればいいんだけど
494デフォルトの名無しさん:2014/02/28(金) 08:51:22.72
>>489
何が変わるんでしょ
なんだかんだ言いながら0.9.5で使えてるわ
495デフォルトの名無しさん:2014/02/28(金) 21:00:55.04
496デフォルトの名無しさん:2014/03/05(水) 23:38:03.33
出力コードの最適化は来ないのかな
言語レベルの定数とかインライン展開でClosureコンパイラで手がまわらない所まで最適化したい
497デフォルトの名無しさん:2014/03/05(水) 23:41:36.34
たぶん出力jsの可読性考えてやってないんじゃない?
jsxとかあるから技術的には可能だと思うし
498デフォルトの名無しさん:2014/03/06(木) 01:46:21.89
>>496
mixinとかってこと?
499デフォルトの名無しさん:2014/03/07(金) 12:42:27.55
Eclipseのプラグイン使ってみたけど
VisualStudioに比べてインテリセンスが死ぬこともないしアウトラインも機能してる
エディターの色分けがまだ変えられないのと、宣言ファイルもソースフォルダの中に無いといけないのがちょっと不便
ファイル関係のことはリンクでカバーできるからまだ良し
500デフォルトの名無しさん:2014/03/08(土) 22:23:28.49
vs2013 + 1.0RCでプロジェクト作っていくつかTSファイル用意するとIntelliSenseもコード補完も効かなくなる
試しにプロジェクト作らずにそれらのTSファイル全部開いて、仮想プロジェクト上でやったら問題無いとかどういうことなん
プロジェクト作っちゃいかんのか
501デフォルトの名無しさん:2014/03/19(水) 08:57:18.73 ID:BRRvET2J
>>500
システム中にnodejsが複数バージョンあると競合することがあるから注意な。
502デフォルトの名無しさん:2014/04/03(木) 12:41:06.17 ID:UmXBHM51
TypeScript 1.0がリリースされた件について
http://blogs.msdn.com/b/typescript/archive/2014/04/03/announcing-typescript-1-0.aspx
503デフォルトの名無しさん:2014/04/03(木) 18:18:25.19 ID:WU6I69c7
うほっ
504デフォルトの名無しさん:2014/04/03(木) 22:10:55.66 ID:PIEAAVmi
>>224
なせま、すばらしい言語は作れるのに、すばらしいOSが作れないのか?
505デフォルトの名無しさん:2014/04/03(木) 22:31:57.98 ID:KPZTHiBY
OSは、したばたらき。えんのしたのちからもち
506デフォルトの名無しさん:2014/04/03(木) 22:52:57.68 ID:8aaFlPVZ
きたかー
507 ◆9Zst2CqO/Y :2014/04/03(木) 22:53:53.75 ID:PIEAAVmi
感慨深いです。
508デフォルトの名無しさん:2014/04/06(日) 11:48:59.26 ID:/BRp7uTK
Microsoft、プログラミング言語“TypeScript”を正式リリース
ttp://www.forest.impress.co.jp/docs/news/20140403_642703.html
509デフォルトの名無しさん:2014/04/06(日) 15:20:08.24 ID:oIpNwxzQ
“TypeScript”は、“JavaScript”へ静的型付け、クラス、モジュールといった機能を追加し、
多くのコンポーネントから成る大規模アプリケーションの開発に耐えうるものへ拡張
510デフォルトの名無しさん:2014/04/06(日) 21:51:24.11 ID:axgq2NYC
TypeScriptでRequirejs使うのって何を意図してんの?
外部モジュールやreference path じゃ不都合の出るケースがあるの?
511デフォルトの名無しさん:2014/04/07(月) 09:23:58.16 ID:cwHyx0pR
全てTypeScriptで成り立つなら使う必要はないかもしれないけど
参照以外はJavaScriptが相手だしな
512デフォルトの名無しさん:2014/04/08(火) 21:37:16.18 ID:LxQtwqh5
Arrayのconcatに値と配列を一緒に渡せるようにするのは今の仕様じゃ無理か
concat(...items: T or Array<T>)
みたいなややこしいもの実装するくらいならコード見直すなりキャストするなりした方がいいな
513デフォルトの名無しさん:2014/04/10(木) 13:20:53.14 ID:WQWEMg7U
アクセサのget と setあるじゃん
これらのアクセサでインターフェイス作りたいときはどう書けばいいのでしょうか?
詳しい方教えてださい

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

のようなかんじなんでしょうか?
514デフォルトの名無しさん:2014/04/10(木) 17:14:13.01 ID:S1KIIA4W
.d.ts吐かせてみたらname: string;になったよ
使う側にしてみれば確かにそうだよな
515デフォルトの名無しさん:2014/05/07(水) 03:11:06.78 ID:Dx88WsDJ
>>513

interface Person {
name: string;
}

class MyPerson implements Person {
public get name(): string { ... }
public set name(value: string) { ... }
}
516デフォルトの名無しさん:2014/05/07(水) 10:07:21.61 ID:ev+R2l3t
yieldやawaitが早くほしい
517デフォルトの名無しさん:2014/06/03(火) 09:06:12.26 ID:L+zlmaIc
518デフォルトの名無しさん:2014/06/04(水) 01:59:15.73 ID:OMtzL7Lr
promiseほしい
519デフォルトの名無しさん:2014/06/04(水) 11:05:05.84 ID:YxCZZ9Nt
アナフォリックマクロがほしい
520デフォルトの名無しさん:2014/06/04(水) 11:14:16.41 ID:ZA5b4cSB
穴堀っく?
521デフォルトの名無しさん:2014/06/06(金) 13:05:08.37 ID:uFCjSph2
TypeScriptあるある
.tsをいじってると思ったら.jsの方を直していた…

俺はVS使ってないからかなぁ
522デフォルトの名無しさん:2014/06/06(金) 14:19:42.43 ID:dQ9iK7KV
class使ってるとネストの深さで気付くけどnode.jsならあるある
523デフォルトの名無しさん:2014/06/06(金) 15:10:50.67 ID:M36FOYua
Visual Studio 2013 update2で編集してると、たまに自動インデントがずれない?
メソッドチェインが複数続く中にクロージャが入るようなパターンで。
524デフォルトの名無しさん:2014/06/07(土) 05:28:03.06 ID:tqM43Wan
Grunt使って *.d.ts を自動管理するようにプロジェクトを構築してみた。
こうしないとJavaScriptの外部ライブラリを使うTypeScriptのプログラムがろくに書けない。

このへんめんどくさいよね。
525デフォルトの名無しさん:2014/06/07(土) 07:02:43.01 ID:n8epCVok
>>524
自動管理って具体的にどういうこと?教えてもらえると助かる
526デフォルトの名無しさん:2014/06/07(土) 09:02:34.02 ID:+6c+B5Zd
tsd
527デフォルトの名無しさん:2014/06/07(土) 18:28:34.94 ID:YFIdD476
>>512
コールシグニチャ使って、関数オーバーロードすれば?
528デフォルトの名無しさん:2014/06/08(日) 02:25:45.65 ID:DugeMH8f
>>526
なるほど、まぁでもtsdはそんな頻繁に使うもんでもないし…
529デフォルトの名無しさん:2014/06/08(日) 15:20:09.06 ID:T7ZzKzYA
>>528
拾ってきた*.d.tsをそのままソースツリーに入れてると、それが古くなったときに困るから
Gruntで最新の定義ファイルをセットアップできるようにしてある。
githubに置いてあるからよかったらどうぞ
530デフォルトの名無しさん:2014/06/09(月) 22:53:58.21 ID:A3T/rzKA
>>529
おぅ、Grunt使ってないから使う時が来たら参考にさせてもらうよ
531デフォルトの名無しさん:2014/06/09(月) 23:04:58.91 ID:A3T/rzKA
Microsoft自体はTypeScriptで何作ってんだろ?
532デフォルトの名無しさん:2014/06/10(火) 19:57:23.14 ID:sJOyb+gB
困った…
...
getElementsByTagName(name: "title"): NodeListOf<HTMLTitleElement>;
getElementsByTagName(name: string): NodeList;
...
ってオーバーロードされてて、たまたま'title'を渡してコールしないといけないけど、
戻り値の型がHTMLTitleElementになってコンパイルが通らん…

強制的に(name: string)の方をコールするにはどうすればいいでしょうか?
533デフォルトの名無しさん:2014/06/10(火) 20:43:42.99 ID:g6Xv0Dfy
<NodeList>getElementsByTagName("title")
としたくないのであれば
getElementsByTagName(<string>"title")
とか
var name = "title";
getElementsByTagName(name)
534532:2014/06/10(火) 23:29:27.55 ID:q5HqdyIo
>>533
> getElementsByTagName(<string>"title")
これでうまくいった!
最初これで試した気がしたけど思い込みだったか…
ともかく助かったありがとう!

しかし、文字列リテラルでオーバーロードできるってなかなか面白い言語だな
さすがヘルスバーグが関わっただけあって実用性第一なとこがいい
535デフォルトの名無しさん:2014/06/11(水) 02:55:50.35 ID:R+1GlkKv
まあもともと何でも通すJavaScriptだからな
536デフォルトの名無しさん:2014/06/11(水) 13:38:52.01 ID:8t9Ps5Bi
合計15000行程度のJavaScriptをTypeScriptへ移行させて思ったこと

.jsを見るとコメント行の直後の空行が削除されてる…なんでや
tscに.jsのインデントを空白2にするオプション付けてくれ(代替コマンドを使えば出来るらしいが)
typoで存在しないメンバーにアクセスしてifが常にfalseになっていた超分かり難いバグを修正できた!

全般的に色んな型を意識することでプログラムが正しく動いてるっぽい自信は付いた
苦労した甲斐はあった
後悔はしていない
537デフォルトの名無しさん:2014/06/13(金) 14:42:14.54 ID:XL0Ee/x3
lib.d.ts とかで↓の書き方を見るけど

interface Hoge {
...
}
declare var Hoge: {
prototype: Hoge;
new (): Hoge;
}

なんで interface と var の二段構えにするのか分からん…
理由を教えてください
538デフォルトの名無しさん:2014/06/13(金) 19:38:00.73 ID:+mlgEAv7
最初は継承(extends)を抑制するくらいかなぁと思ったけど
その例に出てるように、体面上prototypeを通してインターフェースのメンバーにアクセスできるのは大きいんじゃないかね
539デフォルトの名無しさん:2014/06/13(金) 19:58:32.75 ID:+mlgEAv7
何か足りてない気がしたので補足すると
class Hogeだった場合、Hoge.prototypeはany型なので
540デフォルトの名無しさん:2014/06/15(日) 20:17:48.14 ID:YQKlNxZl
前は依存関係で難しかった全ソースを1ファイルから参照してコンパイルが
参照する順番とか気にせずできるようになってるな
project.tsにプロジェクト内のソースと.d.tsの参照をまとめて突っ込んで
これにtypescript-toolsのTSS使うとお気に入りのエディタだけで完結できて捗るな
541537:2014/06/16(月) 13:59:55.61 ID:bPGbiyft
>>537
例えばErrorオブジェクトだと↓のような定義だけど
interface Error {
name: string;
message: string;
}
declare var Error: {
new (message?: string): Error;
(message?: string): Error;
prototype: Error;
}

色々調べたところ、こう書かないと同じにならないからだった
classで普通にオブジェクトを作ると↑のようにはならないけど、
既存のJSオブジェクトは若干イレギュラーな宣言が必要になるようだ

しかし良く考えられてるわ
JSのヘンテコな継承システムをちゃんと定義出来てるんだもんな

JSの代替言語としてはTypeScriptが唯一と言える
ここまでやらないと代替言語とは言えない
542デフォルトの名無しさん:2014/06/16(月) 18:09:30.92 ID:piNVkFe1
動的型向けの妙な使い方ではmoduleを使ったマージなんてのもある
function Foo() {}
module Foo { export var Bar = 0; }
関数とか既に存在するオブジェクトにプロパティを持たせるのに使える。しかもコード補完も有効
543デフォルトの名無しさん:2014/06/16(月) 19:08:40.95 ID:MMwlea4w
declare class IGreeter {
static greeting: number;
}
class Greeter implements IGreeter {
static greeting: string;
}

これで通るのが意味わからん
544デフォルトの名無しさん:2014/06/16(月) 19:48:54.48 ID:bPGbiyft
>>542
マージもそうだが、構造的部分型とかもJSに溶け込む為には必要な言語仕様だな

>>543
インターフェースとdeclareは実体が存在しないからstaticな変数は存在する余地がない
だからIGreeter.greetingは無いことになってるな

class Greeter implements IGreeter {

class Greeter extends IGreeter {
にすると正しくエラーにはなる
implementsはインターフェースとして扱うからか?
545デフォルトの名無しさん:2014/06/16(月) 20:40:26.94 ID:MMwlea4w
>>544
thx
インターフェースはstatic書けないのにアンビエントは書けるから使えるかと思ったら書けるだけで無視されるのか
間違いの元だから構文でエラー出してほしかった
546デフォルトの名無しさん:2014/06/16(月) 22:25:57.48 ID:w9HZwqDq
>>544
現状の declare class + implements でエラーにならないのは何か理由があるのかね
単なる仕様の抜けな気もするけど
547デフォルトの名無しさん:2014/06/17(火) 23:13:47.25 ID:fMVcjia3
operator overload が実装されて欲しかったけど、公式のフォーラム見たかぎりだと完全に無理っぽい
やっぱりJavaScriptとの親和性を考えると難しいかな
548デフォルトの名無しさん:2014/06/18(水) 05:47:48.77 ID:yQv7xPxo
イベントターゲットの型がHTML要素と互換性ないのはいいのかこれ

function test(obj: HTMLElement){}
var button = document.createElement('button');
button.textContent = "Say Hello";
button.onclick = function(event) {
test(event.target);
}

document.body.appendChild(button);
549デフォルトの名無しさん:2014/06/18(水) 09:01:25.13 ID:yQv7xPxo
ああ、<HTMLElement>event.targetでアサーションかますのか
550デフォルトの名無しさん:2014/06/18(水) 11:05:03.22 ID:khpGyYRv
>>549
その辺の元からあるやつは型調べないと全然わからんわ
551デフォルトの名無しさん:2014/06/18(水) 14:14:23.32 ID:Wy6/uQSJ
>>550
W3CのDOMの仕様に書いてあるIDLとか見るとちゃんと忠実に型付けされてるが、
そもそもの仕様がスゲー複雑という問題が…

素のJavaScriptの時はメンバーの有無だけ分かればよかったからお気楽だった
552デフォルトの名無しさん:2014/06/20(金) 00:55:17.73 ID:9srwvof9
declare class と interface の使い分けが今一分からん

interface Point {
x: number;
y: number;
}

declare class Point {
x: number;
y: number;
}

どっちでも同じ結果になるし…
553デフォルトの名無しさん:2014/06/20(金) 01:38:01.55 ID:7nDrVBi+
コンストラクタの型指定とか

declare class i {
constructor(m: any)
}
class Greeter implements i {
constructor(m: any) { }
}
554デフォルトの名無しさん:2014/06/20(金) 11:57:23.88 ID:VM80HBZs
extendsできるものを.d.tsに書くことができるってくらいじゃないか
メンバーの公開が目的ならインターフェースのほうが適任だと思うし、そんな深く考えなくてもいいんじゃないの

コンパイラの-dオプションもたまには思い出してあげて下さい
555デフォルトの名無しさん:2014/06/20(金) 11:59:31.58 ID:zb99Zhe5
そーいやコンパイラのオプション全然知らずに使ってるw
ES5とcommonjsつけてるだけだ
556デフォルトの名無しさん:2014/06/22(日) 23:25:55.14 ID:qgZFRwqF
全体を無名関数で包む方法がないのはなんでだ
557デフォルトの名無しさん:2014/06/23(月) 01:56:37.82 ID:h9KYL7hE
JavaScriptのスーパーセットということを考えると妥当だと思うが
無名moduleで囲むんだ
558デフォルトの名無しさん:2014/06/23(月) 05:58:53.73 ID:HUjW1Zlv
まあJavaScriptでできないから妥当ちゃ妥当か
Coffeeみたいにコンパイルしたあと全体をラップしたかった
559552:2014/06/23(月) 12:04:30.02 ID:sIec/NT0
返答遅くなった
>>553,554
ご意見どうも
コンストラクタの型指定以外はinterfaceでよさそうだ

>>557
moduleには名前を付けないとエラーになるけど、無名moduleって出来るの?
560デフォルトの名無しさん:2014/06/24(火) 01:44:58.57 ID:Imybggoz
これオーバーロードの引数にオブジェクト型使うと型チェックされなくなるじゃん
ひっでえ罠
561デフォルトの名無しさん:2014/06/24(火) 17:43:45.19 ID:Hlw1oGHJ
だってみんなオブジェクトだもの
562デフォルトの名無しさん:2014/06/24(火) 20:10:14.13 ID:cYMPMyTe
だからInterface
563デフォルトの名無しさん:2014/06/24(火) 23:23:16.26 ID:yC/6A8m1
>>560
TypeScriptにオーバーロードはあるけど、結局は実行時にinstanceofとかで判定するだけだからね
あえて余計な拡張をしないってところが最高だが
564デフォルトの名無しさん:2014/06/25(水) 01:08:47.53 ID:BOSvo/mu
出力されるJavaScriptがゴリ押しなんだよなw
565デフォルトの名無しさん:2014/06/25(水) 19:05:10.08 ID:QS2LMLnY
>>564
書いたコードが大体そのまま出てるわけだから、別にゴリ押しでも何でもないと思うが
566デフォルトの名無しさん:2014/06/26(木) 00:18:21.85 ID:GzgNEemv
>>564
むしろTypeScriptが吐き出すJavaScriptは標準的で綺麗だと評判だぞ。
567デフォルトの名無しさん:2014/06/26(木) 23:16:50.91 ID:l2mO0hDP
機能追加要望にabstract classがあがってるけど、それにプラスして
C#みたいにvirtual, overrideの指定が出来るようにしてほしい

virtual, overrideが追加されてもJavaScriptの互換性は壊さないはず(単に消えるだけ)
568デフォルトの名無しさん:2014/06/29(日) 14:33:30.12 ID:89ZlFzgF
むしろ非virtualのほうが無理じゃね?
569デフォルトの名無しさん:2014/06/30(月) 10:44:02.99 ID:nixWhu+t
>>568
ん?どういうこと?
class Base {
hage(): void {

class Derive extends Base {
hoge(): void { ← オーバーライドしたつもりが間違ってる…エラーにもならない

var base = new Derive()
base.hage(); ← 気付き難いバグ

C#はvirtual, overrideのキーワードが必須で噛み合ってないとコンパイルエラーになる
570デフォルトの名無しさん:2014/06/30(月) 17:15:29.57 ID:dmYfxq0O
JavaScript的に同名プロパティはoverrideにしかならないってことだろ
エラー出してほしいなら面倒でもインターフェース用意するしかないね、今のとこ
571デフォルトの名無しさん:2014/06/30(月) 23:41:18.20 ID:5h8Y0Ud2
>>570
なるほど、そういうことか
確かにC#だと同名プロパティをoverrideにしなくは出来るね

virtual, overrideが追加されればいいけど、abstract classとprotectedは
今後追加されるっぽいし、もうほぼC#といってもいいな
こりゃ最高だわ
572デフォルトの名無しさん:2014/07/01(火) 11:20:25.66 ID:GaINMoLq
TypeScriptにはawaitパターンの実装を期待する。
たとえnodejs専用になってもいい。
573デフォルトの名無しさん:2014/07/01(火) 15:16:43.94 ID:EMKYOLl+
awaitはロードマップには書いてあるから実装されるはず
JavaScriptの方でもES7でawaitが入るらしいから、また先取りな感じの実装になりそう
ES6だとyieldでエミュレートできるだろうけど、ES5でも動くようにするには
相当ソースを変形して出力しないと無理そうだから、awaitはES6以上必須になる気がする
574デフォルトの名無しさん:2014/07/01(火) 15:20:33.69 ID:EMKYOLl+
改めてロードマップ見たらawaitはハナからES6がターゲットだった
ES6が当たり前のように使えるようになるまでawaitは使えないね
いつになるのか分からんが…
575デフォルトの名無しさん:2014/07/01(火) 22:48:12.36 ID:R1hMsER0
traceurじゃyieldとか実装してるんだしやろうと思えば出来るだろ
むしろtraceurを全部取り込んでくれ
576デフォルトの名無しさん:2014/07/02(水) 12:37:54.04 ID:G3c9VByj
TypeScriptは綺麗なJavaScriptの出力が重要視されてる
awaitをES5で出すには大幅なソースの変形が必要だから絶対やらないよ

ちなみにどんだけ変形が必要かは↓ここみると良くわかる
http://kyle.graehl.org/es6/javascript/development/2013/08/27/use-es6-yielding-today.html
577デフォルトの名無しさん:2014/07/02(水) 22:50:59.83 ID:17mb1Gx/
MozillaのFlash代替プロジェクトのShumwayでTypeScriptが普通に使われてた
Mozillaすら使うようになったとはすばらしい
578デフォルトの名無しさん:2014/07/02(水) 23:02:03.76 ID:Xpxg/eyt
ほぉ
579デフォルトの名無しさん:2014/07/09(水) 23:15:02.11 ID:eb7DYDd2
これからtypescriptを覚えようと思ったけどdartが標準化されたから消えそうだな
580デフォルトの名無しさん:2014/07/10(木) 02:25:05.77 ID:tJNpeYVp
ECMAの件は確実に勢力図塗り替えるねー
581デフォルトの名無しさん:2014/07/10(木) 07:19:15.64 ID:cDeCNXby
TypeScript、悪くはないと思うんだが決め手が足りん

JSのある意味一番肝心なthis回りのgdgdがそのままだし、
コンパイラ遅いし、なんだかんだでロックインされそうな気がするし、
CS、Haxe、DartとAltJS全部に言えることだが、総合的に得してるのか損してるのかよく解らん

オレしばらくJavaとかSwiftとかC#(Unity)とかやってるからES7が来たら起こして
582デフォルトの名無しさん:2014/07/10(木) 09:31:55.86 ID:tJNpeYVp
>>581
Dartと違って文法がスーパーセットなのが移行を楽にしたんだけどね
でもDartも馴染みやすい文法してるから慣れるのは早いかな

Coffeeはダメだ今となっては誰得
583デフォルトの名無しさん:2014/07/10(木) 11:30:07.73 ID:Hj6ur+GG
まず前提としてJavaScript自体に人気があるし、業務で使うにはJavaScriptと
親和性が高くてデバッグに支障が出ないもの(重要)を選ばざるを得ないから
必然的にTypeScriptを選択する事案は増えるだろう

>>581
this周りのdgdgは解決されてるし、コンパイラは--watchしておけば裏で自動的に
コンパイルして大体1〜2秒で終わる
最終的に綺麗なJavaScriptを出力する事が目的なのに、ロックインとかも意味が分からん…

ネットには実際大して使ってない奴の適当な批評だらけだが、これはマジでいい言語
まぁC#の方がいいとは思うが、それにかなり近い(近付いてる)とは思う
584デフォルトの名無しさん:2014/07/10(木) 12:31:54.44 ID:tJNpeYVp
MSの言語はお行儀がいいからな
面白みはなくても無難にしっかり使えるというか
Googleはその辺信用ならん
585デフォルトの名無しさん:2014/07/10(木) 14:00:16.40 ID:0b9K59t8
10ファイル各200行程度に分割したソースをコンパイルすると3〜5秒くらいかかる
このくらい2秒以下で終わるようにしてくれ
586デフォルトの名無しさん:2014/07/10(木) 15:08:03.73 ID:Hj6ur+GG
>>585
それは--watchしての時間?
36ファイル(jquery.d.ts等含む)でそれぞれ平均400行以上あって--watchだと2秒かからん
CPUは4コア8スレッドで3.4GHz
587デフォルトの名無しさん:2014/07/10(木) 15:19:11.13 ID:Hj6ur+GG
>>584
地味な言語だけどVSで開発出来るあたりが地に足が付いてる感がある
開発はほとんどPCでやるわけで、PC用OSを持ってないGoogleには越えられない壁がある
588デフォルトの名無しさん:2014/07/10(木) 16:29:32.89 ID:0b9K59t8
>>586
そういえばwatchはコンパイラじゃなくてGruntでやってたからコンパイラにやらせて計ってみる
CPU2コア2スレ2.9GHzメモリ8GB
589デフォルトの名無しさん:2014/07/10(木) 16:50:16.57 ID:0b9K59t8
watchオプションで監視したら1秒になったthx
590デフォルトの名無しさん:2014/07/10(木) 18:36:28.19 ID:0b9K59t8
すまんやっぱだめだ
watchだと変更されたファイルだけコンパイルされて変更のないファイルが抜ける
テストは結合する前にやれということかこれは
591デフォルトの名無しさん:2014/07/10(木) 19:54:00.93 ID:Hj6ur+GG
>>590
そりゃそうだろ…
変更してないのに再度コンパイルする必要ないし
///<reference path='hoge.ts' />
しておけば、hoge.tsは無変更でも一緒に必ずコンパイルはされるが
そういう事じゃないんだろうね
592デフォルトの名無しさん:2014/07/10(木) 20:06:57.63 ID:Hj6ur+GG
>>591は間違えた…
俺は全.tsを1コマンドに渡してるけど.jsの日付は毎回全部更新されてた
593デフォルトの名無しさん:2014/07/10(木) 20:38:09.52 ID:0b9K59t8
>>591
依存関係は親は書けても子は書けないから親の変更だと子抜きで出力されるよね?
親クラスと子クラスを別ファイルに書いて1つのファイルに出力したいときに親だけ変更すると子抜きで親だけが出力されてしまうといった具合
594デフォルトの名無しさん:2014/07/10(木) 21:22:29.33 ID:Hj6ur+GG
>>593
普段は結合せずに全jsをロードするようにしてるから言わんとしてる事が分からんかった
そもそも個別にロードしないとデバッグがむずい

とりあえず手元で試したところ全く依存関係のないファイルも常に1ファイル内に出力されたよ

tsc --out out.js --watch hoge1.ts hoge2.ts .... hoge30.ts
って全部渡してる?
595デフォルトの名無しさん:2014/07/10(木) 21:49:42.60 ID:0b9K59t8
tscじゃなくてgrunt-typescriptのsrcとwatchオプションでやってる
tscでも試したかったけどなんでか--watchがなくてできなかった
Windowsなのがいかんのか…

Version 1.0.1.0
Syntax: tsc [options] [file ..]

Examples: tsc hello.ts
tsc --out foo.js foo.ts
tsc @args.txt

Options:
--codepage NUMBER Specify the codepage to use when opening sourcefiles.
-d, --declaration Generates corresponding .d.ts file.
-h, --help Print this message.
--mapRoot LOCATION Specifies the location where debugger should locate map files instead of generated locations.
-m KIND, --module KIND Specify module code generation: 'commonjs' or 'amd'
--noImplicitAny Warn on expressions and declarations with an implied 'any' type.
--out FILE Concatenate and emit output to single file.
--outDir DIRECTORY Redirect output structure to the directory.
--removeComments Do not emit comments to output.
--sourcemap Generates corresponding .map file.
--sourceRoot LOCATION Specifies the location where debugger should locate TypeScript files instead of source locations.
-t VERSION, --target VERSION Specify ECMAScript target version: 'ES3' (default), or 'ES5'
-v, --version Print the compiler's version: 1.0.1.0
@<file> Insert command line options and files from a file.
596デフォルトの名無しさん:2014/07/10(木) 22:31:07.60 ID:0b9K59t8
テスト鯖のLinuxにインストールしたら--watchあるので窓環かな、窓だとinotify使えないし
grunt-typescriptのwatchはtscに流してるのかと思ってたけどソース見たら独自実装ぽいので
ソース指定無視するのはtypescriptじゃなくてgrunt-typescriptの問題ぽいです
お騒がせしました
597デフォルトの名無しさん:2014/07/10(木) 23:06:09.73 ID:0V6jAuTd
>>596
Windows7だが普通に--watch使えてるよ
しかし>>595を見るとなぜか--watchがないw 何でだ?バージョンも一緒なのに
多分typescriptを単体で入れてないで、何らかの依存関係で入った独自版の気がする

inotifyそのものは無いけど、Windowsにも同じ機能はだいぶ前からあるよ
598デフォルトの名無しさん:2014/07/10(木) 23:36:28.23 ID:0b9K59t8
>>597
Winで--watch使えると知れたのは救われます
もっかいインストールしなおして調べてみます
599デフォルトの名無しさん:2014/07/11(金) 01:30:00.94 ID:KDOPr05G
解決
VisualStudio同梱のTypeScriptの使用を強制されてnpmで入れたのを使えなかったのが原因
C:\Program Files (x86)\Microsoft SDKs\TypeScriptフォルダをエスケープして使えなくしてnpmでグローバルにTypeScript入れれば

Version 1.0.1.0
Syntax: tsc [options] [file ..]

Examples: tsc hello.ts
tsc --out foo.js foo.ts
tsc @args.txt

Options:
-d, --declaration Generates corresponding .d.ts file.
-h, --help Print this message.
--mapRoot LOCATION Specifies the location where debugger should locate map files instead of generated locations.
-m KIND, --module KIND Specify module code generation: 'commonjs' or 'amd'
--noImplicitAny Warn on expressions and declarations with an implied 'any' type.
--out FILE Concatenate and emit output to single file.
--outDir DIRECTORY Redirect output structure to the directory.
--removeComments Do not emit comments to output.
--sourcemap Generates corresponding .map file.
--sourceRoot LOCATION Specifies the location where debugger should locate TypeScript files instead of source locations.
-t VERSION, --target VERSION Specify ECMAScript target version: 'ES3' (default), or 'ES5'
-v, --version Print the compiler's version: 1.0.1.0
-w, --watch Watch input files.
@<file> Insert command line options and files from a file.

--watchが使えるようになりました
VisualStudioもエディタとして使ってる分には挙動の差異なし
以上参考までに
600デフォルトの名無しさん:2014/07/14(月) 17:08:11.52 ID:zTDrP48J
protected, await対応するってよ
ttp://www.slideshare.net/chack411/typescript-10
601デフォルトの名無しさん:2014/07/14(月) 21:11:30.93 ID:DiZNy+Py
>>600
その辺は1.0出る前からロードマップには入ってたよ
https://typescript.codeplex.com/wikipage?title=Roadmap
602デフォルトの名無しさん:2014/07/14(月) 21:29:56.56 ID:zTDrP48J
>>601
この対応ってES6出力限定?
603デフォルトの名無しさん:2014/07/14(月) 21:50:21.54 ID:OsEKB3UN
> (ES6 の糖衣構文展開)
604デフォルトの名無しさん:2014/07/14(月) 22:22:17.31 ID:zTDrP48J
糖衣構文展開という用語がよくわからなかったけど>>576のように使わせてくれるわけではないのな
605デフォルトの名無しさん:2014/07/14(月) 22:59:46.40 ID:54lXimEg
>>576はawaitが裏でどういう動作をしているか勉強にはなるが、await1つ書いただけで
こんなに展開されたら邪魔過ぎるよ
606デフォルトの名無しさん:2014/07/15(火) 06:00:34.78 ID:HP8TC9Hh
>>605
TypeScriptの原型の一つとも言えるC#で
実際そんなコンパイルがされるから何も不思議ではない。
607デフォルトの名無しさん:2014/07/15(火) 12:28:57.87 ID:4flqMSi9
>>606
別に不思議だとは言ってない
大量の余計なコードでデバッグがしづらくなりそうだという事
608デフォルトの名無しさん:2014/07/15(火) 13:26:23.67 ID:rDbHUmb1
MSILを見ずにデバッグできるのが当たり前なC#
JavaScript変換後のソースを見ることを考慮し、綺麗なソース出力を特徴とするTypeScript

この2つを同じように考えるのは俺もどうかと思うね
609デフォルトの名無しさん:2014/07/15(火) 19:52:01.37 ID:HP8TC9Hh
601を今読んだけど、
TypeScript 2.0に向けた新機能の一環で、
同時にECMAScript 6 outputに対応するようだから
それほど複雑なことにはならないんじゃないだろうか。

yieldとかもそういう(限定的な)対応だし。
610デフォルトの名無しさん:2014/07/15(火) 20:08:41.23 ID:otAHmBe0
ソースマップがすべて解決してくれるさ(適当)
611デフォルトの名無しさん:2014/07/15(火) 20:50:44.92 ID:4flqMSi9
>>609
awaitはES6のyield使ったコードが出力されるからシンプルなはず
ES6のclassとか先取りしたみたいに、ES7で実装される予定のawaitが実装されるみたいだ
http://wiki.ecmascript.org/doku.php?id=strawman:async_functions
↑ここ見るとawaitとyieldの対応がなんとなく分かる
612デフォルトの名無しさん:2014/07/22(火) 14:56:21.98 ID:oLDaKWRY
1.1からコンパイラが速くなるってよ
613デフォルトの名無しさん:2014/07/22(火) 16:55:06.81 ID:vyw6isvH
平行して一から作り直してるのがあったんだな。で、5倍も速くなってると
もうちょい時間掛かりそうだけどこれは期待できる
TypeScriptチームは有能
614デフォルトの名無しさん:2014/07/22(火) 23:12:54.24 ID:oLDaKWRY
今ほんと遅いから期待
615デフォルトの名無しさん:2014/07/22(火) 23:23:50.03 ID:Qu1gPY25
--watchしてる?
40ファイル弱15000行あっても1〜2秒だぞ
616デフォルトの名無しさん:2014/07/24(木) 19:51:19.33 ID:do+NaX2h
しかもホスティングサイトも自社のCodePlexからGithubへ移行しちゃったよw
CodePlexのUIが糞だったかららしいが、随分思い切った事するもんだ

Github自体はクローズドだから、これに依存し過ぎるのもどうかとは思うが
617デフォルトの名無しさん:2014/07/25(金) 12:22:37.46 ID:pqZYULib
>>616
表向きの説明は、フィードバックをたくさんの開発者から受けるためになってるがw
618デフォルトの名無しさん:2014/07/25(金) 12:37:37.83 ID:oxVV+Dk5
リポジトリ自体は単なるGitだし、Wikiとかは独自に持てばいいし、Github依存なのはIssueの管理ぐらいだと思うけど、
でもいきなりIssueが150件とかあるね?日付見る限りこれはCodePlexで管理してたのをGithubに転送できたってことだね?
これができるならGithubに縛られるわけじゃないから問題は無いと思うな
619デフォルトの名無しさん:2014/07/25(金) 21:43:50.18 ID:kH3w1XZl
TypescriptでやるかEmscriptenでやるか
実に悩ましい
620デフォルトの名無しさん:2014/07/25(金) 23:47:48.79 ID:Dm0vEC3w
TypeScriptをC++に変換したいとは思っている
621デフォルトの名無しさん:2014/07/28(月) 01:47:21.82 ID:3v5nU99l
>>619
Emscriptenでやるかっていう選択肢は無いな
デバッグとか困難だから、普通のネイティブアプリを作って一通りデバッグが済んだ
ものを変換する為のもんだと思うよ
622デフォルトの名無しさん:2014/08/11(月) 14:12:45.84 ID:beLDHY5l
これthisの型定義はできない?
623デフォルトの名無しさん:2014/08/11(月) 17:37:18.21 ID:8w0b15AT
(<any>this).foo();
624デフォルトの名無しさん:2014/08/11(月) 18:16:18.32 ID:QjEYZ0W2
型情報を保持するやつを頼む
625デフォルトの名無しさん:2014/08/11(月) 21:17:04.04 ID:u77AbhwO
var hoge = <Hoge>this;
他の言語いじった事無いのか?
626デフォルトの名無しさん:2014/08/11(月) 21:21:57.75 ID:QvFoQC0W
「thisの型定義」ってのがイミフ
627デフォルトの名無しさん:2014/08/11(月) 21:48:52.66 ID:nzVNkquN
キャストかな?
628デフォルトの名無しさん:2014/08/11(月) 22:27:18.29 ID:LBHrSF+4
thisをthisのまま型を持たせる取り回しがしたい
629デフォルトの名無しさん:2014/08/11(月) 22:33:50.27 ID:mcGWRl7v
thisはちゃんと型定義されてる
他の型にすると言うことはダウンキャストがしたいんだろう
>>625以外のやり方なんて無い
630デフォルトの名無しさん:2014/08/11(月) 22:41:15.61 ID:LBHrSF+4
thisをanyから何某へのダウンキャストは常用してるけど面倒だったので。
thisのまま持って歩くこと自体やるべきじゃないということか。
631デフォルトの名無しさん:2014/08/11(月) 23:58:23.14 ID:8w0b15AT
>>626
node.jsだとクロージャ内のthisを多用するようなライブラリあるから、
thisが自身のクラスとは限らないぞ
632デフォルトの名無しさん:2014/08/12(火) 00:15:05.28 ID:U2GvEuLX
>>631
thisが変わりうるfunction記法ならthisはanyだし、thisが変わらないアロー記法ならthisは型付きだけど、それが何か?
安価の行方もイミフ
633デフォルトの名無しさん:2014/08/12(火) 00:27:25.35 ID:LX+fkdde
>>630
ダウンキャストしたら変数名は変えるべきだ
(変える以外無いが)
つうかダウンキャストしないで済む方法も色々あるよ
634デフォルトの名無しさん:2014/08/12(火) 06:39:12.72 ID:amecDSgR
なんだ新人研修か
635デフォルトの名無しさん:2014/08/12(火) 06:57:36.00 ID:qhbbCUy+
どうせまともに分かってるやつ居ない
636デフォルトの名無しさん:2014/08/12(火) 08:53:29.36 ID:LX+fkdde
>>635
お前よりは間違いなく分かってるよw
637デフォルトの名無しさん:2014/08/12(火) 10:49:22.73 ID:rFdNUJCa
そういう場合は先に型定義ファイルを用意することを考えるべきではないのか。
638デフォルトの名無しさん:2014/08/12(火) 12:36:03.77 ID:hDL3l8Ql
jQueryやIDBのコールバックのコンテキストの型定義するのめんどくさい
639デフォルトの名無しさん:2014/08/12(火) 13:16:10.13 ID:SnV+473X
>>637
thisの型の話しなんだから型定義ファイルは関係無い
>>632が言ってるように単なるfunction内のthisはany、アロー記法とclassのメソッド内は型付きになる
ってだけ

>>638
JavaScriptはコールバックに単なるfunctionを渡してもthisにアクセス出来るという他の言語に無い特徴がある
これは便利でもあるし、混乱の元でもある
当然単なるfunctionなんでthisの型定義は出来ないからしょうがない
640デフォルトの名無しさん:2014/08/23(土) 10:07:14.72 ID:5TpfqPVM
過疎スレ
641デフォルトの名無しさん:2014/08/23(土) 14:15:18.74 ID:a4mxk8Bb
消えへんでー
642デフォルトの名無しさん:2014/08/30(土) 00:54:10.18 ID:ZZ6wqwKf
JavaScriptってザックリ
LISPと言うのかリスト構造を便利に扱えるアセンブラみたいな感じ?
便利で自由だけど自己責任でどうぞな部分がありみたいな
643デフォルトの名無しさん:2014/08/30(土) 11:47:39.81 ID:Yf3zl1Zr
>リスト構造を便利に扱えるアセンブラ
なにそれ!使ってみたい!
644デフォルトの名無しさん:2014/08/31(日) 03:07:20.06 ID:2KUZX6TQ
>>642
なぜTypeScriptスレに書いてるか知らんが、JavaScriptにはリスト構造を簡単に扱う仕組みは無い

>>643
それがLispだ
昔はLispを直接実行するハードがあった
Lispマシーンでググると色々出てくる
645デフォルトの名無しさん:2014/08/31(日) 22:47:36.74 ID:Z3wJLt4Y
よく話題になってるasm.jsは、c/c++コードをマシン語代わりにasm.jsに変換して、jsのコードを型チェックとGC切った状態で実行する仕組みなので、ある意味asm.js用のjsコードがマシン語に対応してる。
http://gigazine.net/news/20130322-firefox-asmjs/

最近の進捗
https://hacks.mozilla.org/2014/05/asm-js-performance-improvements-in-the-latest-version-of-firefox-make-games-fly/
646デフォルトの名無しさん:2014/08/31(日) 23:43:36.77 ID:KcPGWEwY
>>645
正確ではないな
LLVM IRをJavaScriptとして実行出来る形にコンバートしたものがasm.jsだ
Firefoxは実行前にコンパイルしてしまうので、ネイティブコードと同じ速度になるはずだけど、
実際には最適化が同じように出来ないせいかちょっとだけ遅くなってる
647デフォルトの名無しさん:2014/09/01(月) 11:55:47.45 ID:srwG2aQM
一言で言えば話のすりかえやね
648デフォルトの名無しさん:2014/09/01(月) 22:17:16.20 ID:l9Mx4KbC
EmscriptenはLLVM IR前提とするけど、asm.jsターゲットにするコンパイラはLLVMに限らないけどな
649デフォルトの名無しさん:2014/09/02(火) 00:18:44.71 ID:KX7+XVgu
>>648
え、そうなの?
LLVM以外に何でコンパイル出来んの?
単に仕様的にってことか?
650デフォルトの名無しさん:2014/09/02(火) 21:51:51.92 ID:EUZfqIyp
>>649
単に仕様的に。簡単な数値演算くらいなら手書き出来る。
ネイティブコード出力してるマルチターゲットコンパイラなら普通にasmjsバックエンドやれるんじゃない?
651デフォルトの名無しさん:2014/09/02(火) 22:30:47.45 ID:xfYY2ds8
IEでTypeScriptを直接デバッグできるようになればいいのに
コンパイルしてソースマップ作るのめんどくさい
652デフォルトの名無しさん:2014/09/02(火) 22:44:00.83 ID:KX7+XVgu
>>651
そのままデバッグしろよw
見てわかんだろ
653デフォルトの名無しさん:2014/09/03(水) 19:00:08.30 ID:PTdjOYVE
>>651
そのままってのはJavaScriptのままって意味ね
ES6が当たり前になれば、TypeScriptのソースとJavaScriptのソースは大体一緒になる
単に型の指定が無くなるだけだ
654デフォルトの名無しさん:2014/09/03(水) 21:15:59.89 ID:aymKJMBs
>> 653
ES6が出てくれれば、とてもありがたいね。ES6があればTypeScriptを使わないと思う
JavaでTypeScriptを使いたいと思うけど、ちょっと相性が悪い気がする
655デフォルトの名無しさん:2014/09/03(水) 22:44:05.92 ID:mibhuM0S
>>654
いやいや、型指定こそが本質なんだから
ES6時代になっても全然重要度は変わらない
656デフォルトの名無しさん:2014/09/03(水) 23:22:37.02 ID:wZQ4Lp8r
TypeScriptは言語というより型ヒントだよな
むしろ中途半端に記述を楽にする機能とか無くてインターフェースと型指定だけあればいいくらい
657デフォルトの名無しさん:2014/09/03(水) 23:25:59.62 ID:lXYrBgsz
それJavaScript IntelliSenseでいいんじゃないか
658デフォルトの名無しさん:2014/09/18(木) 13:07:32.51 ID:7eeU4PcQ
TypeScriptはC++の出力はできないですか。
JavascriptよりかはC++に変換しやすそうなのに。
Javascript経由のほうがツールありそう。
659デフォルトの名無しさん:2014/09/18(木) 20:46:39.78 ID:9bUObqSD
JavaScriptで出来ることはany経由でほぼ出来てしまうし、結局プロトタイプベースにクラスの皮被せてるモデルのままだからC++と1体1とはいかない
660デフォルトの名無しさん:2014/09/18(木) 21:17:44.57 ID:YQuTbdO9
てかJavaScriptの為の言語でしょ
661デフォルトの名無しさん:2014/09/19(金) 02:17:37.41 ID:TaEd/5rv
JavaScriptを知らん人には他の言語に近く見えるのかな
662デフォルトの名無しさん:2014/09/19(金) 20:23:43.55 ID:eyOVpw/t
JavaScriptアレルギーって結構あるからな〜
663デフォルトの名無しさん:2014/09/20(土) 00:22:30.39 ID:g+GCiF/m
TypeScriptはJavaScriptの強制ギプスとも言える
JavaScriptは自由度が高い言語だけど、必要ない事は敢えて出来ないようにしてるところがTypeScriptの良いところ
664デフォルトの名無しさん:2014/09/22(月) 11:25:27.54 ID:NaqAPqn6
公式のチュートリアルに出てくる数行の短いコードをコンパイルすると8年前のceleronで
real 0m13.827s
user 0m8.953s
sys 0m0.900s
このくらいでこんだけかかると何百行のコードをコンパイルするのは遅いんですが
なんですけどもっと良いパソコンだと早く終わりますか?
665デフォルトの名無しさん:2014/09/22(月) 15:34:22.12 ID:rNXSFejE
>>664
初回起動が遅いのはある
--watchを付けて使えば>>615

さらに今後リリースされる1.1だと5倍速くなる予定だ
666デフォルトの名無しさん:2014/09/22(月) 15:54:09.48 ID:TOfcn3LF
var list:Array<number> = [1, 2, 3, "a"];
コンパイルしてもエラーにならず[1,2,3,"a"]になるんですが何故ですか?
667デフォルトの名無しさん:2014/09/22(月) 16:22:21.49 ID:rNXSFejE
>>666
いや、コンパイルエラーになるよ
668デフォルトの名無しさん:2014/09/23(火) 09:53:08.43 ID:u8IfHrAD
構文さえ合ってれば多少のエラーでもJavaScript吐いてくれるからな
コンパイラのメッセージはちゃんと残るようにしないとな
669デフォルトの名無しさん:2014/09/23(火) 20:01:13.62 ID:ucvUNHjA
やっぱり#ifみたいな条件コンパイルする機能は必要だなぁ
670デフォルトの名無しさん:2014/09/23(火) 20:07:16.49 ID:P6g3rNF/
1.1いつでるのyo
671デフォルトの名無しさん:2014/10/02(木) 01:57:48.63 ID:x5t8Ipk2
>>670
https://github.com/Microsoft/TypeScript/milestones
ここ見ると1.1のバグは全部クローズされてるから、もうそろそろかな
672デフォルトの名無しさん:2014/10/02(木) 16:05:24.55 ID:608ygi3E
protected使えるまであと何年?
673デフォルトの名無しさん:2014/10/02(木) 19:44:11.86 ID:UOfoAcWI
>>669
cppはC以外にも使えるからとりあえずはmakeやgruntからプリプロセッサ呼べば良くない?
674デフォルトの名無しさん:2014/10/02(木) 20:13:25.52 ID:j/17asXl
>>673
ソースに直接#ifって書いちゃうとプリプロセッサ無しにコンパイル出来なくなるから
書き方を工夫しないといけない

///#ifdef HOGE
...
///#endif

みたいにして、リリースビルド時にスクリプトで消すようにする
675デフォルトの名無しさん:2014/10/03(金) 13:16:07.86 ID:ow58zD8s
>>673-674
そこまで込み入ったことをするなら
どうせgrunt.jsなどでビルドを自動化するだろうから
無問題だと思うんだが。

まあC/C++の悪しきマクロ文化は捨て置くとして、
C#レベルのプリプロセッサ機能はあってもいいかもね。
676デフォルトの名無しさん:2014/10/03(金) 13:19:02.94 ID:RUh8StAA
grunt.jsって重いから使ってない
君たちどのくらいのスペックのパソコンで開発してるの?

Celeron 1.6GHz メモリ1GBの環境
677デフォルトの名無しさん:2014/10/04(土) 12:22:30.38 ID:0wiX6Wwn
そら低いやろ…10年前のスペックやぞそれ
678デフォルトの名無しさん:2014/10/04(土) 18:00:43.87 ID:Pk6BHHzK
IDE使うとlanguage serviceのnodejsだけで1G近く使ってるから少なくともメモリ4Gは欲しい
679デフォルトの名無しさん:2014/10/06(月) 01:44:43.35 ID:1pwEBfX4
>>676
そんなゴミスペックのマシンで開発するのは恥ずかしいことだと認識したほうがいいよ
効率に無頓着ってことでしょ?
680デフォルトの名無しさん:2014/10/06(月) 15:34:57.33 ID:dPg/LtR+
入門書読んでvisual studio express2013 for webにてtypescriptを使おうとしてるのですが、新しいプロジェクトを開いてもテンプレートにtypescript がありません。
何か設定が必要なのでしょうか?
PCはWindows8.1 64bitです
初歩的質問で恐縮です
681デフォルトの名無しさん:2014/10/06(月) 15:52:55.71 ID:Ph+/IfM7
初歩的な内容って分かってるならググったほうが早いだろ
682デフォルトの名無しさん:2014/10/06(月) 23:11:21.37 ID:nvSXJ3zQ
>>680
VS2013 for WebのUpdate3(Win7 64bit)使ってるが何もしなくても出てくる
一回アンインストールして入れなおしてみろ
683デフォルトの名無しさん:2014/10/07(火) 12:01:06.30 ID:bg20eE9e
いつのまにか1.1出てますね
684デフォルトの名無しさん:2014/10/07(火) 12:07:41.08 ID:ZVAdmy30
1.1のコンパイル速度
real 0m3.922s
user 0m2.404s
sys 0m0.236s

>>644のときの実行時間より1/4時間で終わるようになった
685デフォルトの名無しさん:2014/10/07(火) 12:08:09.44 ID:ZVAdmy30
アンカミス
>>664
686デフォルトの名無しさん:2014/10/07(火) 12:36:13.57 ID:T1qD/ThM
1.1 キタ━━━━━━(゚∀゚)━━━━━━ !!!!!

--watchにすると37ファイル1万7千行のコンパイルが0.5秒ぐらいで終わるw
前は2秒弱程度あったから確かに4倍速くなってるかな

それに前はメッセージが何も出ないからコンパイル終わってるか分からなかったけど
メッセージも出るようになったし

ただ、出力されるjsは空行が全部詰まるようになった…
前は少しは残ってたのに完全にくっつくとか…可読性が悪くなっちゃったよ

基本的にコンパイラのリライトが目的だから、今後の拡張に向けて
大きな一歩を踏み出したと言えるし期待したい
687デフォルトの名無しさん:2014/10/07(火) 12:51:41.21 ID:ZVAdmy30
何でそんなに早いんですか
パソコンの買い替えを検討中なのでスペックをおしえてください
688デフォルトの名無しさん:2014/10/07(火) 13:24:02.74 ID:eyRexcbF
>>687
いやだから、--watch使ってるからよ
$ tsc --noImplicitAny --target ES5 --outDir hoge/js *.ts
の時間はちょうど1秒だった(5回試した平均)
環境は>>586
689デフォルトの名無しさん:2014/10/07(火) 13:24:45.44 ID:ZVAdmy30
やっぱですくとっぷのほうがいいですねわかりました
690デフォルトの名無しさん:2014/10/08(水) 00:49:16.20 ID:gA7GmNuP
1.1はCTP(Community Technology Preview)だな
正式にリリースした訳じゃないぞ
691デフォルトの名無しさん:2014/10/08(水) 01:04:30.27 ID:p2Ms0OtV
692デフォルトの名無しさん:2014/10/08(水) 11:27:43.63 ID:JRrg6I1r
>>691
そりゃタグぐらい打つだろう
ただ、1.1自体がCTPという事かもしれん
互換性の問題とか細かい修正をしたCTPじゃない1.2が早い内に出るのかもね
693デフォルトの名無しさん:2014/10/08(水) 11:31:33.90 ID:JRrg6I1r
ロードマップ確認したら、1.3にprotectedサポートの記載が!
年内にprotectedが使えるようになる可能性が出てきた
694デフォルトの名無しさん:2014/10/10(金) 07:04:17.63 ID:sQYofeO4
>>682
ありがとう!
修復インストールではダメだったけど、
アンインスコしインストールでテンプレ出るようになりました
695デフォルトの名無しさん:2014/10/10(金) 11:23:48.83 ID:xBelCwHC
https://github.com/sebmck/6to5
こういうのが出てきたけどtypescriptと競合する?
696デフォルトの名無しさん:2014/10/10(金) 11:39:17.27 ID:3qLtwVU0
ie8と互換性のない変換するのはわざわざ使わないかな
697デフォルトの名無しさん:2014/10/10(金) 12:15:04.90 ID:3qLtwVU0
鯖で使うにはライブラリとしての安定性に信頼が置けるのかという
698デフォルトの名無しさん:2014/10/10(金) 17:16:07.95 ID:T0LFFi4l
ie6 -> HTML5 ?
699デフォルトの名無しさん:2014/10/10(金) 23:34:56.04 ID:iEB8zhhU
そこのComparison to other transpilersにもあるけど型チェック必要なければ似たようなプロジェクト以前から複数あって実際競合してる
700デフォルトの名無しさん:2014/10/11(土) 15:23:09.03 ID:WEtjZS+P
TypeScriptの本質は名前の通り型定義だから
701デフォルトの名無しさん:2014/10/13(月) 10:29:04.40 ID:61f+Opvr
java + TypeScriptの構成で開発したいんですが、eclipseとvisual studioの両方を使ってスムーズに開発することは出来ますか?
visual studioでTypeScript書いて、eclipseでjava書きたいです
702デフォルトの名無しさん:2014/10/13(月) 10:52:34.91 ID:fU4OPAim
両方の言語で共有して使えるモジュールみたいなの無いし、片方のIDEでの編集がもう片方に即座に検知される必要のある使い方しなければ問題無いべ。
俺はEclipseとWebstormで似たようなことしてる。

EclipseのGUIから起動したTomcatで、Webstormで編集したhtml等の静的ファイルをホストしてるが問題ない(最新のが来ないとか)です。まぁURLとローカルのファイルパスのマッピングのミスマッチは無視で。。
703デフォルトの名無しさん:2014/10/13(月) 10:54:54.11 ID:TEwcKFwB
VSギャラリーのJava言語プラグインみたいな奴に期待すると悲しいことになる
704デフォルトの名無しさん:2014/10/13(月) 12:12:32.12 ID:61f+Opvr
TypeScriptは良い言語だけど、VisualStudio以外のIDEがダメだなー

>>702
>Webstormで編集したhtml等の静的ファイルをホストしてるが問題ない(最新のが来ないとか)です
自分も同じ現象で困っているんです。visual studioで修正した内容が、tomcatに反映されないとちょっと厳しい
705デフォルトの名無しさん:2014/10/13(月) 22:38:39.06 ID:JXCdJMyl
TypEcsとかeclipse-typescript試してる人はいないの?
706デフォルトの名無しさん:2014/10/13(月) 22:44:32.69 ID:JXCdJMyl
あと更新の検出だけならEclipseのワークスペース同期を自動にしてみるとか
707デフォルトの名無しさん:2014/10/13(月) 23:31:47.67 ID:OYwvx2Jj
>>705
どっちもプラグイン無しよりはかなりマシ
VSと比べると微妙だがサーバーサイド開発で既にEclipse使ってるならまぁありだと思う
708デフォルトの名無しさん:2014/10/15(水) 16:07:01.95 ID:4P8jUSTi
https://github.com/microsoft/typeScript/milestones
ここ見るともはや1.3がそろそろリリースされそうな勢いだな
1.2は1.1の致命的なバグFix版の位置付けだけど飛ばして1.3なのかな?

ちなみに1.3は言語仕様が少し変わってprotectedとTuple型が追加される
Tuple型は今まで配列に違う型の値を入れられなかったのが、入れられるようになって
var t: [number, string] = [1, "one"];
が出来るようになるようだ

普通やんないから全然重要な機能じゃないけど、既存のJavaScriptで作ったライブラリ
を使う時に困ってた人はいるかもね
709デフォルトの名無しさん:2014/10/15(水) 18:12:24.23 ID:5vlaZL8F
配列というより構造体やね
710デフォルトの名無しさん:2014/10/15(水) 23:29:49.28 ID:MQ8XgHJ4
TypeScriptというかnodejsのharmony仕様を調べ始めたところだが、
ES6の実装状況がまちまちで四苦八苦している。

JS処理系側でサポートされてないと、TypeScriptで記述しても意味ないからなあ。
711デフォルトの名無しさん:2014/10/15(水) 23:33:10.27 ID:Kkv3TzoN
何言ってんだこいつ
712デフォルトの名無しさん:2014/10/16(木) 01:39:43.27 ID:vsc4Q1q9
TypeScriptの入門は
http://www.typescriptlang.org/Handbook
がコンパクトだけど必要十分な内容で他のドキュメントは不要とさえ思える

しかしもっと見やすいフォーマットのが欲しいけど見当たらないな
713デフォルトの名無しさん:2014/10/16(木) 10:53:59.05 ID:XPfraOI8
JavaScriptフレームワーク側がモジュール機構を持ってる場合、
TypeScriptの外部モジュールの機構とバッティングしてこんがらがってしまう。
なにかこの辺をうまく説明してくれてるドキュメントはないものか。


たとえばAngularJSとか。
714デフォルトの名無しさん:2014/10/17(金) 06:27:22.31 ID:GxuVIfVs
基本的にスーパーセットなわけで、こんがらがるかなぁ
運用ルール次第なんじゃない
715デフォルトの名無しさん:2014/10/17(金) 07:33:34.82 ID:QP1DIUi6
javascript -> TypeScript の流れって
perl5 -> perl6 並に糞
716デフォルトの名無しさん:2014/10/17(金) 08:43:21.09 ID:2VE/je/5
>>715
どう糞なのかくやしく
717デフォルトの名無しさん:2014/10/17(金) 08:53:11.02 ID:QO9aEKfQ
モジュールやクラスのエミッタの拡張ポイント欲しいって話は出てるからMSの人々も現状で過不足無いとは思ってなさそう
718デフォルトの名無しさん:2014/10/17(金) 09:39:51.56 ID:miHSXPj2
多分、TypeScriptもPerlも理解出来てないと思う
719デフォルトの名無しさん:2014/10/17(金) 11:19:10.66 ID:HZvg3la9
朝日新聞みたいに言ったもん勝ちみたいな風潮はいつから始まったんだろう
720デフォルトの名無しさん:2014/10/17(金) 11:25:11.18 ID:eItDrHFZ
1.1でもう既に十分な機能ではあるけど、唯一改善して欲しいのが
出力される.jsの空行が全部削除されてる事だ
これは頂けない
多分難しいのかもしれんが、.tsに書いた通りに空行を残してもらえればもう言う事ない
721デフォルトの名無しさん:2014/10/17(金) 11:31:51.62 ID:eItDrHFZ
あと、if elseも
1.0
if (...) {
} else {
}
だったのが、
1.1
if (...) {
}
else {
}
になったのもちょっと嫌だな…気にし過ぎかな…
722デフォルトの名無しさん:2014/10/17(金) 11:53:06.81 ID:HZvg3la9
それは嫌
723デフォルトの名無しさん:2014/10/18(土) 11:47:14.42 ID:wr0SP5In
TypeScripとJavaで開発するとき、EcipseとVisualStudioの連携が面倒だなーって思ってたけど
xmlhttprequest使えば、簡単に連携出来そうだねー
724デフォルトの名無しさん:2014/10/18(土) 15:18:04.19 ID:bO6OiW4i
>>723
ちょっと言ってる意味が分からん…
Ecipse⇔VisualStudioはツール間の連携
XMLHttpRequestはサーバーとhttpで通信するJavaScript用APIだぞ
725デフォルトの名無しさん:2014/10/18(土) 15:57:55.44 ID:wr0SP5In
>>724
サーバサイドをjava、クライアントをTypeScriptで書いた業務システムを作りたい。
@ サーバ側はEclipse + Tomcatでプログラムを書きたい(サーバサイドでHTMLの生成は行わない)。
A クライアント側はVisual StudioでTypeScriptを書きたい(静的なHTMLに対して、Jqueryでいろいろやりたい)。

Eclipse と Visual Studioの連携は難しい ===> XMLHttpRequestでクロスドメインを使うようにプログラムを組めば、両方のIDEを使って開発できるのではないか?

@ サーバ側はJava + Tomcatでこれまで通り開発 (リクエストはJSON形式)
A Visual StudioでTypeScriptプロジェクトを作成
B TomcatにCrossDomainを許可する設定を行う

こうすれば、Visual Studio内臓のIIS + IEでTypeScriptをデバッグできるなーと思いました。
726デフォルトの名無しさん:2014/10/18(土) 18:38:50.07 ID:FkSTwmVr
「Eclipse と Visual Studioの連携は難しい」っつってもそもそもがサーバーもクライアントもJavaScriptでやるんじゃなければIDE間の連携要らなくない?
localhostで動かして必要ならFiddlerでホスト書き換えればCrossDomainすら要らないと思う
727デフォルトの名無しさん:2014/10/18(土) 23:39:37.50 ID:wr0SP5In
>> 726
勉強なりました。
Fiddlerで静的コンテンツをtomcatから配信しているように見せることってできるんですか?

本当はサーバでjava以外の言語を使いたい。だけど、IT土方はリスキー言語を使うことは出来ないんだ
728デフォルトの名無しさん:2014/10/19(日) 00:17:13.44 ID:VMmfdF2z
>>727
Javaなんて開発もデバッグもめんどくせえリスキー言語なんて使いたくないわ。

Androidアプリ作るときは仕方なく使うけどね。サーバーサイドじゃ使いたくない。
729デフォルトの名無しさん:2014/10/19(日) 01:29:44.31 ID:lwrY8Iln
Javaが嫌なら何で作るんだい
730デフォルトの名無しさん:2014/10/19(日) 02:47:30.51 ID:VMmfdF2z
>>729
ヒント:このスレのタイトル
731デフォルトの名無しさん:2014/10/19(日) 11:29:33.51 ID:J2Ys1qNE
TypeScriptでBackBoneを使うメリットが無い気がするんだけど、気のせいかな?
backboneはclassを提供してくれてるけど、typescriptだと普通にclassあるじゃん
それに、jsを呼び出すから、デバッグする時に面倒な気がするんだ
732デフォルトの名無しさん:2014/10/19(日) 19:25:38.40 ID:G07peUQ7
スレ違いになるだろうが、VSがJavaをサポートすればかなり売れると思う
IntelliJがどれくらい売れてるか知らないけど
733デフォルトの名無しさん:2014/10/19(日) 20:03:14.60 ID:ra9PQ8S0
Javaは確かに普及はしてるががそんなに重要な言語とは思えない
MSはC#があるし言語仕様的にはC#のほうがいいからJavaをサポートする意味が分からない
734デフォルトの名無しさん:2014/10/19(日) 20:11:39.84 ID:ncEUq1lZ
J++とかJ#とかややこしい経緯があったんだよ
このスレで言うのもなんだが実行環境の縛りなければサーバー側でTypeScript使いたくはない
ブラウザで動かす前提なら最強の一角だけど、単に言語として見るとJavaScript由来の仕様辛いよ
735デフォルトの名無しさん:2014/10/19(日) 20:24:06.47 ID:J2Ys1qNE
>>734
俺もそう思うわ
736デフォルトの名無しさん:2014/10/20(月) 12:52:20.44 ID:3G7qDqYW
ES6が標準になればletとか使えるようになるからJavaScript由来の変な仕様はほとんど無くなるよ

むしろES6は非同期処理が充実するとか現状でも配列の柔軟性とかメリットも多いと思うけどね
737デフォルトの名無しさん:2014/10/20(月) 13:39:57.99 ID:X9WQfm+1
10年後に期待
738デフォルトの名無しさん:2014/10/20(月) 14:24:50.67 ID:3G7qDqYW
10年後ってなんだ?
サーバー側はNode.js一択だと思うからオプションで有効にすれば今でもletとかyieldとか使えてる
クライアント側は例によってIE次第だな
スマフォの場合はIE気にしないからじきに使えるようになるかね
739デフォルトの名無しさん:2014/10/20(月) 15:06:20.86 ID:3G7qDqYW
https://github.com/Microsoft/TypeScript/wiki/Roadmap
このロードマップが更新されて、1.3のprotectedとTuple型の追加の他に
1.4でUnion Types and Type Guardsが追加されるようだ
interface Settings {
foo: number|string;
}
とか
function process(n: string|HTMLElement|JQuery) { /* ... */ }
みたいに出来るらしい
これでへんてこなオーバーロードの宣言を書かなく済みそう
740デフォルトの名無しさん:2014/10/20(月) 16:46:12.00 ID:gc0RlShe
Type GuardsはJavaScriptに退化してるんじゃないか
実装されても規約で禁止されそう
741デフォルトの名無しさん:2014/10/20(月) 17:20:53.78 ID:3G7qDqYW
>>740
なんで?型情報は保存されてるからanyが伝搬していくわけじゃないよ
function process<T>(n: T) { /* ... */ }
と同じでなおかつ型を限定してるだけだと思う
742デフォルトの名無しさん:2014/10/20(月) 18:58:51.27 ID:gc0RlShe
jsでproc(n: any)だったのを型を確定するためにproc(n: number)にしたのにproc(n: number|string)じゃまた不確定に戻ってる
パラメータの型は呼び出された側でなく呼び出す側で揃えるべき
オーバーロードの表現として使うにしても本来関数の実体が別々だったものを実体が一つしかないtsの奇形を促進させたらますますクラスベースと離れていく
オーバーロードの実体以外で許可したらそれもうオーバーロードじゃなくて何でも放り込めるただのjsの関数と違うんかと
743デフォルトの名無しさん:2014/10/20(月) 19:11:39.59 ID:3G7qDqYW
>>742
それは不確定とは言わない
不確定なんて言ってたらジェネリックスを根本から否定する事になる

コンパイル時に型が分かる事をタイプセーフっていって変な型を指定した場合に
コンパイル時にエラーになれば、それで問題無い

ジェネリックスを否定したらC++は型が不確定な言語になってしまうな
C++はオーバーロードも出来るわけだが、型が不確定なんて言ってる奴は誰もいないぞ
744デフォルトの名無しさん:2014/10/20(月) 19:36:57.39 ID:gc0RlShe
>>743
実害としてクラスベースで書けないjserがオーバーロードもわからず既存のjsコードにType Guards突っ込んだだけで型定義しましたみたいにもってきそうなのが前段の反対理由
コンパイラでなくコーディングの統一と可読性の問題
そもそもジェネリックやオーバーロードを認めないような極端な話ではない
後段については触れられていないがいかがか
745デフォルトの名無しさん:2014/10/20(月) 19:57:05.25 ID:3G7qDqYW
>>744
常に変数に型を2つも3つも書くやつが出てくるかもしれないって事でしょ?
正直そうしないように注意とかするしかないよ
今だってany使いまくれば、型システムを破綻させられるんだから

JavaScriptで出来てる事をTypeScriptでタイプセーフに出来るのであれば
機能として問題無いと思う
746デフォルトの名無しさん:2014/10/20(月) 20:18:43.03 ID:mofLKnG7
JavaScriptとのインターフェースでは使うけどTypeScript側では使わないくらいの規約が良さそう
それはそうとnumber|stringとは別にNum of number|Str of stringのようなの欲しい
747デフォルトの名無しさん:2014/10/20(月) 20:19:46.61 ID:gc0RlShe
>>745
んで、そうしないように注意するしかないことを増やすアップデートを誰が喜ぶんだしかもTypeScriptでということ
コンパイラの仕事を人間に戻すなと
748デフォルトの名無しさん:2014/10/20(月) 20:37:44.57 ID:3G7qDqYW
>>747
オーバーロードが書きやすくなるから、少なくとも俺は喜ぶが
少し気にし過ぎだろ…

function process<T>(n: T) { /* ... */ }

って書けば今だってパッと見型が分からないコードは書けるわけで、それより限定してる分マシだろ
749デフォルトの名無しさん:2014/10/20(月) 21:14:20.19 ID:gc0RlShe
>>748
自分一人でやるか品質が保証されている分にはそうだろうがね
大規模開発のための言語だろこれは
オーバーロードにしても型と型に応じた処理の分離していないバグの入りやすいtsのオーバーロードを
ほかの言語より使いやすくお膳立てするなんてバグを奨励しているようなものだ
そういうのは全部jsに捨ててくるべきものだ
750デフォルトの名無しさん:2014/10/20(月) 22:46:12.06 ID:KfYW9NVG
>>749
もしかしたら勘違いしてんのかもしれないけど、
interface Settings {
foo: number|string;
}
fooは実行時にnumberとstringにコロコロ切り替わるわけじゃないぞ?
コンパイル時にどっちかの型に決まるだけだ
実行時には型は一貫してんだからバグりやすくはならないはず
751デフォルトの名無しさん:2014/10/20(月) 23:04:45.84 ID:gc0RlShe
>>750
Union Typesについては最初から触れていないが…
これコンパイルで動的型付けしてる?

var x: string | number;
var test: boolean;
x = "hello"; // Ok
x = 42; // Ok
x = test; // Error, boolean not assignable
x = test ? 5 : "five"; // Ok
x = test ? 0 : false; // Error, number | boolean not asssignable
752デフォルトの名無しさん:2014/10/21(火) 07:31:03.67 ID:2BVwyhYl
いわゆる直和型みたいなものという理解は正しい?
753デフォルトの名無しさん:2014/10/21(火) 11:58:05.53 ID:hiB0/bSQ
>>741
C++でいうところの特殊化ってやつだね。
754デフォルトの名無しさん:2014/10/21(火) 12:00:56.50 ID:UGhNhSWT
>>752
違う。直和型オブジェクトは存在しない。型指定子に過ぎない。
755デフォルトの名無しさん:2014/10/21(火) 13:37:07.16 ID:G/+K0PEB
https://github.com/Microsoft/TypeScript/pull/824
をざっと見たけどこんな感じ?

var x: string | number = "a";

// 実行時の型が string か number か確定していないのでコンパイルエラー
// x.substring(0,0);

if (typeof x === "string") {
 // string だと確定しているのでOK
 x.substring(0,0);
} else {
 // string でない = number なのでOK
 x.toFixed();
}
756デフォルトの名無しさん:2014/10/22(水) 17:02:12.59 ID:0wIIsT5J
>>755
何となく理解出来たがType Guardsは、typeofが書かれていたら型が確定してるからOKっていう
面白い仕様なんだな

var x: string | number = "a"; ← この指定がUnion Typesで
if (typeof x === "string") { ← このif文がType Guardsって事かね

仕様書を見てちゃんと把握したいな
757デフォルトの名無しさん:2014/10/23(木) 12:31:08.87 ID:4GmocH82
Common Lispにもこういうのあるでしょ。
動的型付けの言語だと、こういう型の限定の仕方の方が実行時動的型と整合性がいい。
758デフォルトの名無しさん:2014/10/24(金) 12:59:18.04 ID:drYYIR9w
http://blogs.msdn.com/b/typescript/archive/2014/10/22/typescript-and-the-road-to-2-0.aspx
ブログが更新されたけど、これ見てGoogleがAtScriptなるTypeScriptのパチモンを作ってる事を知った
言語仕様も殆ど一緒で完全に車輪の再発明なのにGoogleは相変わらず節操無いな…

1.2は飛ばして近い内にprotectedが使える1.3が出るようだ
で、1.4でUnion TypesとType Guardsが入ると
仕様は>>755の通りだね
759デフォルトの名無しさん:2014/10/24(金) 13:19:39.54 ID:eccWVdvb
ES6やES7のことを考えれば、複数の型システムのテストベッドがあるのは非常に良いこと。
760デフォルトの名無しさん:2014/10/24(金) 19:04:40.84 ID:PFUmR1v0
VisualStudioでデバッグしている時に、ステップインでjsまでデバッグしちゃうけど
これどうにかならんの?

jsまでステップインしたくないよ
761デフォルトの名無しさん:2014/10/25(土) 00:16:59.48 ID:/KPX8GAJ
>>760
VS使ってないから分からん…
ステップインせずに普通にステップ実行(ステップオーバー?)すればいいだけのような気がする
ステップインって中に入る事だからね
762デフォルトの名無しさん:2014/10/25(土) 09:56:17.10 ID:NnpXcJtj
>>761
eclipseだとステップフィルターってのがあるよ
763デフォルトの名無しさん:2014/11/02(日) 16:05:24.54 ID:HSaSJDw6
MSのいうところの大規模ってどんくらいなん
764デフォルトの名無しさん:2014/11/03(月) 07:31:27.33 ID:mHreferM
ソースコードで1億行くらいだろ
765デフォルトの名無しさん:2014/11/03(月) 10:24:25.90 ID:aVYK41/G
>>764
Windowsの全ソースコードでもそんなにないだろw
766デフォルトの名無しさん:2014/11/03(月) 19:10:48.83 ID:i5F5sNZ0
ソースコードの行数というより人数を基準にした方がいいだろ
767デフォルトの名無しさん:2014/11/03(月) 21:12:00.17 ID:y+Ffadyw
1億人くらいだろ
768デフォルトの名無しさん:2014/11/04(火) 14:41:32.61 ID:c7h3Jf1g
https://github.com/Microsoft/TypeScript/wiki/Roadmap
Roadmapが更新されてた
ES6の対応は2.0からだったはずだけど1.4からES6のターゲットが追加されて
機能的なサポートも始めるようだ (let const とか)

まだES6をすぐ有効には出来ないだろうが先に実装されてるのはありがたい
769デフォルトの名無しさん:2014/11/05(水) 21:29:14.46 ID:vKRb2bS6
>>765
Windows Vistaのステップ数は5000万行らしいねー
770デフォルトの名無しさん:2014/11/06(木) 10:00:19.95 ID:Yj3faNE/
getDateをprivate似したい場合どうかけばいいんですか?
こう書くとclock.ts|3 col 3 error| TS1131: Property or signature expectedになりました

interface ClockInterface {
currentTime: Date;
private getDate(): void;
}

class Clock implements ClockInterface {
currentTime: Date;
private getDate(){
}
}
771デフォルトの名無しさん:2014/11/06(木) 10:29:35.81 ID:37FIwPnT
>>770
interfaceにprivateは書けないよ
他の言語でも同じだと思うけど
772デフォルトの名無しさん:2014/11/06(木) 11:01:36.85 ID:Yj3faNE/
そうだったんですか
classのほうにだけprivateを書いて
interface ClockInterface {
currentTime: Date;
getDate(): void;
}

class Clock implements ClockInterface {
currentTime: Date;
private getDate(){
}
}
こういうふうにしたらエラーがでなくなりました
でもprivateを付けても付けなくてもコンパイル後のコードの中身が変わらなかったので
typescript上でしか意味がないそうだしつけなくてもいいかもと思いました
773デフォルトの名無しさん:2014/11/06(木) 12:26:21.20 ID:jUQR/Hag
privateできるけどしなくていい
774デフォルトの名無しさん:2014/11/06(木) 12:45:41.18 ID:4LIj2giI
var user = {name: "takeshita", age: 20};
これをtypescriptでの書き方を教えてください

class School {
user: {name: "takeshita", age: 20};
}
はだめでした
775デフォルトの名無しさん:2014/11/06(木) 13:04:40.93 ID:jUQR/Hag
基本の書き方覚えないで書いてるだろ
ネットのリファレンス一通り読め
776デフォルトの名無しさん:2014/11/06(木) 22:16:52.10 ID:p4q3tuhB
typescriptではこう書く

var user: any = {name: "takeshita", age: 20};


classを使う場合はこう書く

class School {
  name = "takeshita";
  age = 20;
}
var user = new School();
777デフォルトの名無しさん:2014/11/06(木) 22:49:47.09 ID:i0KJXTYC
さらにTypeScript的な感じならこうだな

interface School { name: string; age: number; }
var user: School = { name: "takeshita", age: 20 };

class School {
constructor(public name: string, public age: number) {}
}
var user = new School("takeshita", 20);
778デフォルトの名無しさん:2014/11/06(木) 22:55:39.06 ID:ZFIfqC6A
SchoolをStudentに変えるべき
その教材は捨ててしまえ
779デフォルトの名無しさん:2014/11/06(木) 23:17:19.32 ID:S3faJCg+
>>774
> var user = {name: "takeshita", age: 20};

これは正しいTypeScriptの書き方
なんら問題無い

ただuserが何型かを明確にさせたいなら>>777

interface School { name: string; age: number; }
var user: School = { name: "takeshita", age: 20 };

がTypeScriptらしい書き方
classを使うとこの場合は別モノになるな
780デフォルトの名無しさん:2014/11/07(金) 04:49:14.89 ID:MQmGrs9M
scoolkiller思い出した
781デフォルトの名無しさん:2014/11/08(土) 17:11:18.95 ID:ynvOK8IX
コンパイルした時に複数のtsを、1つのjsにまとめる機能って無いの?
共通部分は1つのjsにまとめて、それを参照する形で業務ロジックを作りたい

ちなみに、VisualStudio使ってます。
782デフォルトの名無しさん:2014/11/08(土) 18:14:30.07 ID:ThoMLEK3
プロジェクトのプロパティを開いて
「出力」−「JavaScript出力をファイルに結合する」をON
ファイル名を入れてビルド
783デフォルトの名無しさん:2014/11/08(土) 18:57:04.73 ID:ynvOK8IX
>>782
まじかー
サンクス
784デフォルトの名無しさん:2014/11/13(木) 12:56:42.64 ID:HZsyUBKC
1.3キタ━━━━━━(゚∀゚)━━━━━━ !!!!!
Announcing TypeScript 1.3
http://blogs.msdn.com/b/typescript/archive/2014/11/12/announcing-typescript-1-3.aspx
785デフォルトの名無しさん:2014/11/13(木) 13:12:36.10 ID:TfaWOQiO
ついにねんがんのぷろてくてっどが!
786デフォルトの名無しさん:2014/11/13(木) 13:35:56.65 ID:HZsyUBKC
しかし出力された.jsは相変わらず空行全削除だな…
読み易いJavaScriptを出力するのが目的なんだから何とかして欲しいもんだ
787デフォルトの名無しさん:2014/11/13(木) 14:43:37.81 ID:kQSoOJMP
>>784
2012
10/01 0.8

2013
06/18 0.9

2014
04/02 1.0
10/06 1.1
11/12 1.3

この調子で2.0まで駆け抜けてくれ

https://github.com/Microsoft/TypeScript/wiki/Roadmap
788デフォルトの名無しさん:2014/11/13(木) 20:06:46.36 ID:zuUAHoZq
>>758
angular.jsのためにアノテーション加えたかったんだろう
789デフォルトの名無しさん:2014/11/13(木) 22:51:40.48 ID:c+BKp7IS
790デフォルトの名無しさん:2014/11/13(木) 23:38:50.77 ID:NtTGAkQ7
>>789
> しかしまぁご覧のとおりanyを使うと普通にアクセスできてしまうので、僕個人の感想としてはあんまり意味がないですね。
> privateも使わないで書こうマンだよ〜。
とても本を書いてるとは思えないド素人発言だな…そもそもprotecedが無いのは欠陥だったとも言える

ちなみに、TypeScriptリファレンスは糞みたいな本なんで買わない方がいい
何で知ってるかというと俺が買ってしまったからw
791デフォルトの名無しさん:2014/11/13(木) 23:55:00.09 ID:a0cxthmI
ほかの言語でもprivateなしで書いてるんすかね…
792デフォルトの名無しさん:2014/11/14(金) 00:00:17.93 ID:Mjy8s0H8
多分コメントに、この変数は外部からアクセス不可とか書いてんだろうねw
793デフォルトの名無しさん:2014/11/14(金) 01:14:05.40 ID:NlQWL6le
C#やJavaとかのprotectedと違ってthisから上位クラスのprotectedにはアクセスできるけど
自分以外の上位クラスのインスタンスのprotectedには触れないっぽいね

RubyのprivateやScalaのprotected[this]の挙動に近いけど
同じクラスであれば自分以外のインスタンスのprotectedでも触れちゃうとこが違うな
794デフォルトの名無しさん:2014/11/14(金) 14:15:47.60 ID:gVMWlR/7
>>793
> 自分以外の上位クラスのインスタンスのprotectedには触れないっぽいね
C#とかJavaってそうなんだっけ?
とりあえずC++はアクセス出来ないからC++とは同じだな

> 同じクラスであれば自分以外のインスタンスのprotectedでも触れちゃうとこが違うな
これもC++と同じだった
795デフォルトの名無しさん:2014/11/14(金) 14:30:06.08 ID:gVMWlR/7
Roadmapみるとabstract classesは2.0の予定になってるけど早く実装して欲しい
virtual overrideの管理にプログラマが気を付けなくちゃいけないのが嫌だな
796デフォルトの名無しさん:2014/11/16(日) 13:54:34.68 ID:DNje/fYc
だれか急いで1.3対応の入門書だしてくれ
797デフォルトの名無しさん:2014/11/16(日) 23:34:22.64 ID:zXilgO39
1.3は1.0にprotectedとTuple型が追加されてるだけだよ
798デフォルトの名無しさん:2014/11/17(月) 13:45:09.14 ID:rdWO/fjv
TypeScriptってJavaScpiptに対するJScriptみたいな位置づけになるの?
ECMAScriptの大部分の拡張とTypeScriptの拡張はかなりかぶってるよね。
.jsにTypeScript書いたらそのまま動くようになったりする?
799デフォルトの名無しさん:2014/11/17(月) 14:06:13.55 ID:u2kwl61l
TypeScriptは名前の通りJavaScriptに型を導入する事が最も大きな特徴
プラスしてJavaScriptを拡張してるが、ほとんどはECMAScript6の機能に準じてる
要するに
TypeScript≒ECMAScript6+型
と考えていい (とはいえ、まだ色々実装途中ではあるが)

> .jsにTypeScript書いたらそのまま動くようになったりする?
無理
800デフォルトの名無しさん:2014/11/17(月) 16:11:24.22 ID:3IcvFL49
>>798
ランタイムはライブラリしか持たないから全然違う。
801デフォルトの名無しさん:2014/11/18(火) 01:50:30.78 ID:Pwn6cC3n
>>798
アンダース氏が設計した新言語による次世代JavaScript開発とは? (1/3)
http://www.atmarkit.co.jp/ait/articles/1301/18/news087.html

TypeScriptとは何かを、日本語で最も分かりやすく説明している記事だと思うから読んでね
802デフォルトの名無しさん:2014/11/19(水) 11:32:22.06 ID:K0vhbty/
https://github.com/Microsoft/TypeScript/wiki/Roadmap
>1.4
>New --noEmitOnError

何か追加されてた
803デフォルトの名無しさん:2014/11/19(水) 13:23:46.99 ID:R4xnVA9K
>>802
それはエラーになった時に.jsを作るなというオプションだ
ビルド中にエラーなのに.jsが作られると不都合がある時に便利なやつだ
804デフォルトの名無しさん:2014/11/19(水) 13:34:24.32 ID:R4xnVA9K
https://github.com/Microsoft/TypeScript/wiki/What%27s-new-in-TypeScript%3F
ちなみにこんな分かり易いページがあったぞ
これによると、Roadmapに書いてないけど1.4ではCで言うtypedefが導入されるな
コールバックの型を毎回正しく書かなくてよくなるのは助かる
805デフォルトの名無しさん:2014/11/19(水) 20:00:08.38 ID:R4xnVA9K
switchのcaseラベルが重複してても何のエラーにもならないな…これはアカンよ
tslintでもワーニングが出ないから、ひとまず目視で確認するしかないなぁ
806デフォルトの名無しさん:2014/11/19(水) 20:50:06.66 ID:0+0ozXC3
ウォーニンg
807デフォルトの名無しさん:2014/11/20(木) 02:51:27.58 ID:XBwc4H8z
808デフォルトの名無しさん:2014/11/20(木) 03:03:58.80 ID:XBwc4H8z
Flow | A static type checker for JavaScript
http://flowtype.org/

http://qiita.com/tags/flow

facebook版TypeScriptであるflowの動向も
809デフォルトの名無しさん:2014/11/20(木) 08:56:15.01 ID:q0sk1zSo
また無駄な再発明するのか
810デフォルトの名無しさん:2014/11/20(木) 11:45:09.64 ID:NXtQAofb
TypeScriptで最も価値があるのはlib.d.tsだ (最近は分割されてlib.*.d.tsだけど)
ブラウザ内蔵オブジェクトに正しく型を付けているのはTypeScriptだけ
これを真似しようとしたり使ったりしようとすれば単にもう一つTypeScriptが出来るだけだ
811デフォルトの名無しさん:2014/11/20(木) 12:13:33.65 ID:EmAWw9wC
angular.jsいいね
812デフォルトの名無しさん:2014/11/20(木) 13:21:36.11 ID:vfYJcr11
Union types

var x = [1, 'hello']; // x: Array<string|number>
x[0] = 'world'; // OK
x[0] = false; // Error, boolean is not string or number

これって地味にべんりなのか?
コマンドラインの引数で引数が ’abc’ 又は 1 とか
’abc’ 1 みたいなストリングと数値
内部で処理するときに ’abc’ はストリング 1 は数値であることが確定かつ保障された状態なので処理が楽みたく
813デフォルトの名無しさん:2014/11/20(木) 13:53:58.66 ID:NXtQAofb
>>812
それはTuple型だ
x: Array<string|number>のstring|numberがUnion typesといえる
普通やらないし、JavaScriptエンジンは配列に別の型を入れると遅くなる問題がある
814デフォルトの名無しさん:2014/11/20(木) 15:57:58.68 ID:zD0t+gDT
ヘジはLightweightな言語に細かい便利機能詰め込むんじゃねーよ
ルーズだけどシンプルだからスクリプト使ってるのに
複雑なことしたいならstatic strong typingなC#でやるっての
815デフォルトの名無しさん:2014/11/20(木) 16:39:09.62 ID:NXtQAofb
>>814
細かい便利機能じゃないよ
既存のJavaScriptライブラリとかに配列内に別の型の代入する事を要求するものがあった場合に
今までだとanyにするしかなかったのをちゃんとタイプセーフに出来るようにしただけ

Union Typesのおかげでanyを全く使わなくて済むようになるから重要な機能だ
TypeScriptオンリーの場合は使わない機能とも言えるがJavaScriptとの連携を考えれば必要だな
C#もdynamicが導入されて動的言語になってるからTypeScriptと同じ立場と言える
816デフォルトの名無しさん:2014/11/20(木) 17:39:51.04 ID:vfYJcr11
もともとanyで出来たんだ
タイプセーフでコンパイル時に弾くんだね
817デフォルトの名無しさん:2014/11/20(木) 20:11:26.43 ID:NXtQAofb
>>813は微妙に間違えた…
Tuple型は
var x: [string, number] = ['hello', 1]; // OK
x[0] = 1; // NG
x[0] = true; // NG
var x: [string, number] = [1, 'hello']; // NG
で、

1.4でUnion Typesを使うと
var x: Array<string|number>
var x = ['hello', 1]; // OK
var x = [1, 'hello']; // OK
x[0] = 1; // OK?
x[0] = true; // NG?
かな

1.3で型を書かないと
var x = ['hello', 1]; // OK → x:[any, any] になってるっぽい
x[0] = true; // OK

まとめると…配列に違う型を入れる場合はTuple型を使うか1.4以降のUnion Typesを使って
ちゃんと型定義しないと、[any, any]になってしまうってことか
818デフォルトの名無しさん:2014/11/20(木) 20:28:33.85 ID:oqTW0z+N
javaをやっている感じで、ファイルを分割しているんだけどさー
やっぱり、ファイルを分割するとパフォーマンス落ちる?
819デフォルトの名無しさん:2014/11/20(木) 20:47:36.66 ID:NXtQAofb
パフォーマンスが実行速度の事なら変わらないよ
最初の読み込み速度は多少遅くなるだろうね
820デフォルトの名無しさん:2014/11/20(木) 20:55:25.29 ID:oqTW0z+N
>最初の読み込み速度は多少遅くなるだろうね
これって、jsの読み込み速度?
821デフォルトの名無しさん:2014/11/20(木) 21:04:41.17 ID:NXtQAofb
>>820
そうそう
ただ、1ファイルにまとめてjsを書き出せるから最後にまとめれば問題無いんだけど
822デフォルトの名無しさん:2014/11/20(木) 21:06:45.51 ID:hXnIjUet
出力ファイルは結合すればいいんだけど分けすぎると依存関係が理解不能になって死ぬよ
823デフォルトの名無しさん:2014/11/20(木) 21:50:32.97 ID:Bl9pqrtY
ちょっと体験してみたいけど、どうすれば良い?
824デフォルトの名無しさん:2014/11/20(木) 22:17:25.65 ID:NnpwxPiE
825デフォルトの名無しさん:2014/11/20(木) 22:43:54.47 ID:1ob9Wc7O
>>822
それは単に設計する時の問題だろw
TypeScriptだと理解不能になりやすいとかあるのか?
826デフォルトの名無しさん:2014/11/20(木) 23:01:59.76 ID:hXnIjUet
ファイル読み込み順間違えると落ちたり、相互参照で動かせないコードが書けたりする程度
827デフォルトの名無しさん:2014/11/20(木) 23:09:39.63 ID:1ob9Wc7O
>>826
ファイル読み込み順間違えるとエラーになるのは確かにあるな
コンパイル言語ではあるが実行はスクリプトで頭からだから、アレ?と思うことはある
ただ、相互参照で動かせないコードが書けたりするのは、どの言語でも有り得るぞ
828デフォルトの名無しさん:2014/11/20(木) 23:14:30.76 ID:1ob9Wc7O
>>826
つうか本質的には両方同じ事を言ってるな…
ファイル読み込み順問題で分割せざるを得ない事はあるか
829デフォルトの名無しさん:2014/11/20(木) 23:55:23.81 ID:/mtnwqnI
ソース同じなのに依存関係壊れてるファイルを出力することがたまにあるのが困る
ウォッチでなしに
830デフォルトの名無しさん:2014/11/23(日) 02:33:50.71 ID:tLtXc62m
Facebook、JavaScript用の静的型付けチェッカー「Flow」をリリース
http://sourceforge.jp/magazine/14/11/20/163800
facebook flowでHTML5 Canvasデモを作ってみた
http://ics-web.jp/lab/archives/3611

AtScriptってなんだろう? 〜 めも 〜
http://albatrosary.hateblo.jp/entry/2014/11/20/131206
831デフォルトの名無しさん:2014/11/23(日) 02:44:46.80 ID:Hrwo/3LP
スレチ
面倒
3行
832デフォルトの名無しさん:2014/11/23(日) 03:24:43.08 ID:Hrwo/3LP
最後だけ読んだけどES6先行実装したところでどうせ普及するまでにはTypeScriptも対応するのだからアドバンテージではない
それより仕様変更の追従で互換性が死んだり冗長化するのが不安
まずVS相当のIDEだせ話はそれからだ
833デフォルトの名無しさん:2014/11/24(月) 08:03:56.66 ID:JmS/vGuj
>>5
VSの2013 Communityがリリースされた今、このレス見ると、微笑ましく
なるね。MSがサーバーサイドへ収益源をシフトしようとしてる中では、Eclipse
やXcodeみたいなものに、プラグインじゃないにせよ、技術提供することは容易
に考えられる。
834デフォルトの名無しさん:2014/11/24(月) 08:04:56.38 ID:Fx9sxyxG
え、開発環境としてのWindowsを売ろうとしてるんでしょ?
835デフォルトの名無しさん:2014/11/24(月) 11:55:47.12 ID:F6ixuxuV
実際にはlanguage serviceとかいう入力補助や型ヒント等の開発補助ツールの為の機能は既に提供されてるよね?
まぁ俺IDEの中の人じゃないし知らんけど。
836デフォルトの名無しさん:2014/11/24(月) 12:40:57.97 ID:JyotAVq+
>>830
情報ありがとう
TypeScript はもう古いんだね
837デフォルトの名無しさん:2014/11/24(月) 13:05:56.96 ID:xcmrTXbp
>>836
下記にくさだとか、色々な大規模開発上の問題点は、フレームワークが
解決してくれてるしな。HTML5などなど色々と登場してる中では、昔のよ
うなJavaScriptではない。
838デフォルトの名無しさん:2014/11/24(月) 18:33:13.43 ID:KXz7w2LU
フレームワークすげぇ
839デフォルトの名無しさん:2014/11/24(月) 20:43:15.12 ID:p9lJgEwd
>>833の書き込み見て、このスレが2年前からあることに驚いてしまった
そして安定の>>2で笑ってしまった
840デフォルトの名無しさん:2014/11/24(月) 21:01:35.12 ID:wCkEdUJA
>>830みたいなWebの連中の、品質や互換性を軽視したいい加減な仕事のやり方は言語作りにはそぐわない
実際、Web初の言語で一番成功したのがCoffee(笑)だもんな
841デフォルトの名無しさん:2014/11/24(月) 21:03:13.54 ID:98ZWpNI0
初?発?
842デフォルトの名無しさん:2014/11/24(月) 23:53:36.15 ID:2q8CWjRy
>>830は俺だが、TypeScript類似言語の動向や差異を日本語で書いてあるものを
貼っておけば分かり易いからで、叩く意図はない

>>836
古いのではなく先取りしている
だから他社が追随してきた
843デフォルトの名無しさん:2014/11/25(火) 01:00:39.40 ID:NpDVSULx
リンクだけ張られてもだから何だわ
844デフォルトの名無しさん:2014/11/25(火) 13:27:37.02 ID:S74EOu6j
flowを少し見てみたけど、ほぼ完全にTypeScriptのパクリだった
private指定が無かったんで、JavaScriptに無い機能は追加しない方針なんだろうね

しかし、言語設計とか一番大変なところを完全にパクっといて自社プロジェクトっぽく
発表してるのは、企業理念を疑うレベルだな
845デフォルトの名無しさん:2014/11/25(火) 13:50:53.93 ID:+R7wQUEx
Googleの黒魔術はまだスルーできるけどFBは個人情報分析くらいしか技術的に見れたところないのでは
846デフォルトの名無しさん:2014/11/26(水) 02:16:49.23 ID:9jMEWev1
2014-11-25のJS: Chrome 39 Beta、デバッグTips、Facebook Flow
http://jser.info/2014/11/25/chrome39-debug-flowtype/
847デフォルトの名無しさん:2014/11/26(水) 10:43:53.14 ID:zQhe9g1q
typescriptの変換通ればJSHintなど通す必要ない?
848デフォルトの名無しさん:2014/11/26(水) 22:03:00.03 ID:K+JZFPOg
tslintにしてる
849デフォルトの名無しさん:2014/11/26(水) 22:23:58.21 ID:pH7dGPli
tslintいいよー
デフォで有り得ないぐらいチェック厳しいけど、デフォぬるくて気がつかないよりはいい
適宜調整してちゃんと通せばJSHintはいらないね
850847:2014/11/26(水) 23:25:39.75 ID:zQhe9g1q
>>848-849
あんがと、なるほどtslintか。

テストはqunitなどのJavaScript用でいいかな?
851デフォルトの名無しさん:2014/11/27(木) 11:33:34.34 ID:kRLD/q+H
>>834
それならば.Netをオープンソース化なんてしないだろ

PCが衰退し様々なスマフォやタブレットなどに移行していく昨今、来るWEB OS時代(ChromeOSとかfirefoxOSとか)にソフト環境をどうするのか?という問いに対するMSなりの回答なのさ。

AppleやGoogleはすべて捨てろ、新しく覚えろ、作りなおせ、毎年買えと言ってる。
イノベーションとか革新的に再定義したとか言い出して誤魔化しているが冷静に考えれば
キチガイじみてる。

それに対して、既存リソースをWEB OS時代に継承できますよ。というMSからのメッセージなのだろう
つまり、OSとかPCを捨ててその上側持って次世代に行きますよってことだな。
852デフォルトの名無しさん:2014/11/27(木) 14:56:04.49 ID:QnPNQERt
20年前を彷彿とさせるな
853デフォルトの名無しさん:2014/11/27(木) 17:46:52.56 ID:jEc+RWal
オープンソース化されたのは.NETではなく、.NET Coreである点に注意

既存リソースの継承というより、
.NET Core用リソースへの投資を促す為でしょ

これを機に鳴かず飛ばずな.NET Coreの状況を改善しようとしてる
854デフォルトの名無しさん:2014/11/27(木) 17:50:38.23 ID:b1d08Po8
monoの立場が微妙になってきたがそれはそれで存続するんだろうな
855デフォルトの名無しさん:2014/11/28(金) 14:32:07.52 ID:jIf3qw+l
結局monoにはならなかったか…
856デフォルトの名無しさん:2014/11/29(土) 19:17:09.34 ID:1Jq357Cf
xamarinでこれから儲けたろ!って思ってた所に
本家から目をつけられた感じだなw
857デフォルトの名無しさん:2014/11/29(土) 21:03:45.01 ID:1L1G4cU3
xamarinはmono自体を売るのが商売じゃないから、正直たいした影響は無い気がする
顧客としてはC#でAndroidアプリを作ったり出来れば何でもいいんだろうし
858デフォルトの名無しさん:2014/11/30(日) 15:25:03.75 ID:DANrX/9U
現在さっぱり金になってない.net/mono on Unixサーバーの法人向け事業を
MSの支援を受けながら本格的にやれるんだから、xamarinにとって悪い話ではないだろ
うまくいけばXamarin studioなんかよりよっぽど安定して稼げる
859デフォルトの名無しさん:2014/12/01(月) 21:31:34.81 ID:oqE9PddT
TypeScriptの行く先
http://qiita.com/vvakame/items/bf4d1e339d5815026fbb

ECMAScript 6 compatibility table
http://kangax.github.io/compat-table/es6/

TypeScriptが各処理系のES6対応状況一覧に追加

TypeScript 1.3 (7%)
6/9 arrow functions
3/5 default function parameters
YES rest parameters
1/3 object literal extensions
860デフォルトの名無しさん:2014/12/01(月) 23:24:05.53 ID:8qnlnKRu
>>859
> ECMAScript 6 compatibility table
IE(TP)のES6の準拠度がはんぱねー
VS+TypeScript+IE(TP)で最強のアプリ開発環境になりそうな悪寒
861デフォルトの名無しさん:2014/12/02(火) 08:23:35.83 ID:m/U+kAA0
>>858
いや、そうはならないと思うよ。

実際にUNIXサーバでMonoを動かして.netをどうこうしようなんて考える客は
殆どいないし、そもそもMonoの互換性は低い(大体、.netだけでプログラム組んでる
奴なんて殆どいない)。

.net使うならIISを使うし、開発環境はVSオンリー。Xamarinなんて初めから相手に
しないよ。MSが公式に.net frameworkをUNIX向けに完全ポーティングしてくれるな
らともかく、今回の公開はあくまでもCore部分のみ。そっから先はなんとかしろって
話だからね。

もともと、Xamarinに高い金払って開発するような価値も余地もないよ。
862デフォルトの名無しさん:2014/12/06(土) 14:26:56.42 ID:CZ530wjJ
>>858
いまのMSはクラウドサービス押してるのもあり、
サーバとクライアントは、Adobeの動画配信ビジネスみたいにシフトして
開発環境はVSが売りだと分かってるらしいが、ここは展開の実現性も必要性もあまりなさそう。
OSコンテナ技術やライセンスフィーの問題に対応できれば、1000台を10分で投入するような効率優先のSaaSやサービス展開に対応出来てサーバ側の展開は必要なくなると思うので、どっちが先になるかだな。
863デフォルトの名無しさん:2014/12/06(土) 17:51:54.68 ID:XSJW8j/j
TypeScriptから生成されたjsを動的ロードしている人いる?
国内情報だとrequire.jsの情報とか少なくないか
864デフォルトの名無しさん:2014/12/06(土) 21:00:22.92 ID:O2PZNRYp
ちゃんとTypeScriptの流儀にならってinterface経由で依存関係を扱うようにしていれば
動的ロードでも特に問題になるところは無いと思うが
865デフォルトの名無しさん:2014/12/07(日) 03:06:05.87 ID:0/yMx/Np
TypeScript 1.3とECMAScript 6に向けたマーチ
http://www.infoq.com/jp/news/2014/12/typescript-ecmascript-6

TypeScriptの注目の型関連issue
http://teppeis.hatenablog.com/entry/2014/12/typescript-hot-issues
866デフォルトの名無しさん:2014/12/23(火) 21:56:13.52 ID:qRGxu+Zo
FacebookがJavaScriptの型チェックを提供するFlowをオープンソース化
http://www.infoq.com/jp/news/2014/12/facebook-flow-javascript

「生JavaScriptで十分」な人にこそTypeScriptをおすすめしたい理由
http://mzsm.me/2014/12/23/advent-calendar-2014-typescript/
867デフォルトの名無しさん:2014/12/25(木) 07:46:53.87 ID:qKZrZOHg
TypeScript でも充分とは思えない
868デフォルトの名無しさん:2014/12/25(木) 10:51:21.60 ID:GinUhUBw
>>867
例えばどんなところが?
869デフォルトの名無しさん:2014/12/25(木) 10:56:41.62 ID:Y5il8ylR
右クリック&ドラッグでコピー出来なくなってる
870デフォルトの名無しさん:2015/01/07(水) 01:39:23.01 ID:IU5WqJH9
2015-01-06のJS: ESLint 0.11.0、Browserifyとwebpack、TypeScriptの本
http://jser.info/2015/01/06/eslint0.11-browserify-webpack-typescript/

TypeScript in Definitelyland
http://techbooster.github.io/c87/#typescript
型の国のTypeScript
http://typescript.ninja/typescript-in-definitelyland/
871デフォルトの名無しさん:2015/01/07(水) 01:41:42.96 ID:IU5WqJH9
開発者の年末年始休暇も終わっただろうし、1.4期待age
872デフォルトの名無しさん:2015/01/07(水) 05:40:10.05 ID:XtKeABNm
VSがハングアップするバグはよなおしてけれー
873デフォルトの名無しさん:2015/01/07(水) 10:45:52.70 ID:Jbla9vGA
>>871
https://github.com/Microsoft/TypeScript/milestones
ここ見ると88%だから、まだ数ヶ月掛かるような気がする
100%になってもリリースするまで1ヶ月ぐらいは様子見てるし
874デフォルトの名無しさん:2015/01/07(水) 20:17:18.42 ID:IU5WqJH9
>>873
http://blogs.msdn.com/b/typescript/archive/2014/10/22/typescript-and-the-road-to-2-0.aspx
>@Simon - We've been trying to put out a release every 6-8 weeks, but sometimes they take a bit longer to bake.

http://www.infoq.com/jp/news/2014/12/typescript-ecmascript-6
>TypeScriptのProgram ManagerであるJonathan Turner氏は、「6〜8週間ごと」にリリースを提供して、
TypeScript GitHub リポジトリですでに利用可能な言語とツール機能を構築していくTypeScript 2.0ロードマップを示した。

昨年の11月12日に1.3が出てから8週間経つし、近い内に1.4来るかなと思った
それと、今月21日のWindows10のイベントに合わせるかなとも考えたんだ
875デフォルトの名無しさん:2015/01/07(水) 20:52:54.56 ID:IU5WqJH9
https://github.com/Microsoft/TypeScript/wiki/Roadmap/4eb16e36ab6b3d9749b10d584c3cca3744cbd66d

ロードマップが更新されて、SymbolsとComputed propertiesの対応が1.4から1.5に先送りされてる
876デフォルトの名無しさん:2015/01/14(水) 22:34:01.88 ID:zZs3K1L2
>>873
1.4.1の項目が追加されて、1.4の方は進捗度が100%になってるよ
もしかしたら今週か来週あたり出るかもしれない

これからは言語仕様追加版の合間に、不具合修正版を細かく出すのならいいな
877デフォルトの名無しさん:2015/01/15(木) 12:15:28.15 ID:0baecqAW
>>876
ほんとだ
無理やりな感じもするが、定期的なアップデートを重視してるのかもね
1.4は近いうちに来そうだ
878デフォルトの名無しさん:2015/01/17(土) 09:07:22.86 ID:8HCQBOVO
1.4きたな
879デフォルトの名無しさん:2015/01/17(土) 11:10:01.89 ID:8ToY3jo0
汚ね
880デフォルトの名無しさん:2015/01/17(土) 14:15:20.92 ID:+rUaI3F0
Announcing TypeScript 1.4
http://blogs.msdn.com/b/typescript/archive/2015/01/16/announcing-typescript-1-4.aspx

これでES5の範疇に関してはひとまず完成形と言えるだろうね
881デフォルトの名無しさん:2015/01/17(土) 17:19:08.22 ID:+rUaI3F0
--target ES6 でコンパイルしても今までのES5の機能を使ってる限りは多分全く同じjsが出るな
classとか=>がjsに残ったりしないから、ちょっとつまらんな
882デフォルトの名無しさん:2015/01/17(土) 20:19:21.49 ID:8HCQBOVO
ES6にしたらそのまま型情報だけ消えてそっくりの文法で出力されると思ってたわ。
883デフォルトの名無しさん:2015/01/17(土) 21:46:57.40 ID:IDqsytYO
class People {
private age: number;
constructor(n: number) {
this.age = n;
}
getAge() {
return this.age;
}
}
これをコンパイルしてvar obj = new People(10);console.log(obj.age);すると10と表示されて
privateの意味がないんですが何故ですか?
884デフォルトの名無しさん:2015/01/17(土) 23:18:08.02 ID:8HCQBOVO
privateはコンパイラへの指示であってコンパイル結果であるJavaScriptにprivateなんて概念無いから
885デフォルトの名無しさん:2015/01/18(日) 00:57:20.26 ID:zftw74FF
>>882
そうなるのは2.0からなんだろうね
886デフォルトの名無しさん:2015/01/18(日) 14:40:17.66 ID:+2hm0AH2
生成されるjsに型やアクセスレベルのチェックを入れるオプションがあってもいいとは思うが
開発スピードを最重視してるみたいだから二重開発みたいになるのは嫌なんだろうな
887デフォルトの名無しさん:2015/01/18(日) 15:29:27.28 ID:zftw74FF
>>886
TypeScriptオンリーで開発してる場合は必要無い機能だ
JavaScript用のライブラリ作る時にはあった方が便利かもしれないけど、AtScriptがやろうとしてるな
あと、アクセスレベルのチェックって不可能だと思うけどな
888デフォルトの名無しさん:2015/01/18(日) 16:28:48.61 ID:wXCrDAs4
888
889デフォルトの名無しさん:2015/01/18(日) 18:38:15.30 ID:5wNJLYNH
>>886
それやるのブラウザのJSエンジン側じゃねという感じ
890デフォルトの名無しさん:2015/01/18(日) 18:57:30.08 ID:wXCrDAs4
Chrome専用ですね判ります
891デフォルトの名無しさん:2015/01/18(日) 18:58:19.32 ID:5wNJLYNH
Dar...いや、なんでもない
892デフォルトの名無しさん:2015/01/19(月) 02:37:22.73 ID:Mo6+4Jio
Microsoft、「TypeScript 1.4」をリリース
http://www.softantenna.com/wp/software/typescript-1-4/
TypeScript 1.4.1 変更点
http://qiita.com/vvakame/items/69efc1c6a3b91876330d
TypeScript 1.4がいい感じ
http://d-poppo.nazo.cc/blog/2015/01/typescript-1-4/
Union Typesは直和型ではない
http://d-poppo.nazo.cc/blog/2015/01/union-types/
893デフォルトの名無しさん:2015/01/19(月) 02:40:19.04 ID:Mo6+4Jio
最近のFlowtype事情とReact+Flowtype連携
https://gist.github.com/teppeis/a48558a71a98d6bee6c9

https://github.com/facebook/flow/blob/master/Changelog

Flowの動向も一応
894デフォルトの名無しさん:2015/01/19(月) 08:38:33.77 ID:1z1TgAQU
このスレ書き込んでるの知ってる人ばっかりじゃないかと思えてくる
895デフォルトの名無しさん:2015/01/19(月) 09:49:21.67 ID:jGwp2f1A
寝てる間に自分が書いてる可能性もあるな
896デフォルトの名無しさん:2015/01/19(月) 11:39:33.20 ID:6c7OTSrf
蝶が書き込んでいるスレと聞いて
897デフォルトの名無しさん:2015/01/19(月) 12:37:19.41 ID:h8PlB3E6
>>892
> Union Typesは直和型ではない
> http://d-poppo.nazo.cc/blog/2015/01/union-types/

圏論とか全然分からんが
> じゃあTypeScriptでの直和型って何なのよ?
で出てるサンプル見た限りだと、Union Types + Type Guardsとやってる事は一緒な気がした

なんで、TypeScriptのUnion TypesはType Guardsと合わせて使う(想定された使い方)ことで
直和型と言って問題ないと思われる
898デフォルトの名無しさん:2015/01/19(月) 14:13:46.06 ID:VmiST7FS
>>892
おまえわかめちゃんだろ
899デフォルトの名無しさん:2015/01/19(月) 19:10:33.84 ID:bWHfL2L5
>>897

(* OCaml / F# の直和型 *)
type sum = L of int | R of int

-- Haskell の直和型
data Sum = L Int | R Int


// TypeScript の Union Types

// type Sum = number と同じ
type Sum = number | number

var x: Sum = 42

// どっちの number?
if (typeof x === "number") { ... }
900デフォルトの名無しさん:2015/01/19(月) 20:19:11.78 ID:h8PlB3E6
>>899
なるほど、それは分かりやすい説明だ
直和型とは言えないんだね

ついでに質問だけど、>>897のサイトで
> 直和型は、一般には「左右どちらの値を持っているか知っている」
といきなり説明されているけど、それは直和型の前提なのかい?
901デフォルトの名無しさん:2015/01/20(火) 13:21:40.41 ID:lcMON5u4
>>900
型理論的? な厳密な定義は知らないけど

a 通りの値をとる型 T と、b 通りの値をとる型 U、があるときに
直和型 (T | U) がとる値は (a + b) 通りになる

というのが自分の直和型に対する理解。

たとえば、型 boolean の値が true, false の 2 通りあるとして
boolean と boolean の直和型 Sum

 // F#
 type Sum = L of boolean | R of boolean

がとる値は L(true), L(false), R(true), R(false) の 4 通り。
直和型の定義を満たすために
「左右どちらの値を持っているか知っている」 必要があると思う
902デフォルトの名無しさん:2015/01/22(木) 12:34:13.09 ID:8LHmLWKl
>>901
返答遅くなったけど、分かりやすい説明どうも

ま、区別できることにあまり実用性を見い出せないが、関数型言語とかは理論に忠実(?)に
実装してるから区別できるようになってるという事は分かった
903デフォルトの名無しさん:2015/01/22(木) 22:32:35.51 ID:82XjwRL1
>>881
classはまだ仕様が完全に固まってないんでしょ
最近もsuper()の仕様が変わったばかりだし

http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts#january_15_2015_draft_rev_31
904デフォルトの名無しさん:2015/01/27(火) 16:52:39.17 ID:7qUw9RLD
spartanでJSコンパイルなしに動く可能性ある?
905デフォルトの名無しさん:2015/01/27(火) 19:18:24.83 ID:IS86ufGr
標準仕様無視してそういう事したらまたIEの二の舞じゃんw

多分VBScriptも動かないんじゃね?
906デフォルトの名無しさん:2015/01/27(火) 20:03:05.38 ID:MpwFrzaX
>>905
標準仕様的には、scriptのtypeで言語は決められるでしょ?
907デフォルトの名無しさん:2015/01/27(火) 20:03:30.85 ID:YPddvVlR
現状typescriptがコンパイル無しで動いてもそこまで嬉しくない
908デフォルトの名無しさん:2015/01/27(火) 20:06:08.00 ID:IS86ufGr
ttp://www.buildinsider.net/web/spartan/01
独自拡張はやめるってさ
909デフォルトの名無しさん:2015/01/27(火) 20:11:17.14 ID:CY57Ew/v
>>908
またUIも同時に変えるんだなw
レンダリングエンジンだけまず変えればいいのに。
910デフォルトの名無しさん:2015/01/27(火) 20:39:50.79 ID:MpwFrzaX
>>909
レンダリングエンジンは同じだぞ

> ちなみにWindows 10のIEは、Spartanと同じレンダリングエンジン(詳細後述)が採用される予定である。

IEコンポーネントブラウザと一緒で、こういうものはコアのレンダリングエンジンがあって
そのレンダリングエンジンが備えている拡張機能を使って様々な機能を実現している。
JavaScriptなんかも同じ。

SpartanはActiveX対応などの拡張機能や互換機能を取り除いて
IEコンポーネント以外の部分を変えたものになるんだろう。
911デフォルトの名無しさん:2015/01/27(火) 20:46:48.03 ID:MpwFrzaX
まあ、レンダリングエンジンだけ先に変えろというのは正しくて、
それをいままで実際にやって来たんだけどね。

つまり、IE8、IE9、IE10、IE11と徐々に標準に準拠するように
レンダリングエンジンを変えてきた。
これをやらないで一気に変えてしまうと互換性問題が発生するからね。

そしてレンダリングエンジンの変更が終了したからUIの変更に手を付けた。
912デフォルトの名無しさん:2015/01/27(火) 20:55:03.56 ID:y3V1wQox
>>910
Spartanの話だよ。
913デフォルトの名無しさん:2015/01/27(火) 21:02:04.31 ID:IS86ufGr
IEも搭載でこれ以上バージョン上がらないとなるとむしろしぶとく残り続けそう
914デフォルトの名無しさん:2015/01/27(火) 21:21:19.83 ID:MpwFrzaX
>>912
Spartanの話だよ?
915デフォルトの名無しさん:2015/01/27(火) 21:25:02.33 ID:IS86ufGr
新エンジンEdgeHTMLがデフォルトって書いてあるね
916デフォルトの名無しさん:2015/01/27(火) 21:27:41.47 ID:y3V1wQox
>>914
SpartanはエンジンもUIも同時に変えてるだろ。
917デフォルトの名無しさん:2015/02/02(月) 13:12:08.66 ID:nkMRJBlI
「Project Spartan」が実装するデュアルレンダリングエンジンとは
http://news.mynavi.jp/articles/2015/02/02/windows10report/
918デフォルトの名無しさん:2015/02/02(月) 13:37:17.18 ID:3AEkduFQ
>>916
バージョンアップしただけだよ。

俺が言ってる、"変える" というのは
Chromeのレンダリングエンジンから
Firefoxのレンダリングエンジンに
変えるようなレベルの話をしていて。

ChromeのBlinkのバージョンなんたらが
バージョンかんたらに変わるようなレベルの話じゃない。
919デフォルトの名無しさん:2015/02/02(月) 13:55:28.77 ID:d6JB6KlL
>>917
結局IEとSpartanどちらもデュアルレンダリングでデフォルトが違うっつーわけね
920デフォルトの名無しさん:2015/02/02(月) 14:39:35.64 ID:V6TcMC53
>>918
エンジン設計のポリシーが変わってるんだが。
921デフォルトの名無しさん:2015/02/02(月) 14:55:05.14 ID:3AEkduFQ
IE11の設計ポリシーとは変わってないよ。
ほぼ使われない過去のIE互換機能が無くなっただけ。
922デフォルトの名無しさん:2015/02/02(月) 14:56:43.98 ID:V6TcMC53
IE11はブラウザ
923デフォルトの名無しさん:2015/02/02(月) 15:17:15.93 ID:3AEkduFQ
そうだだね。Tridentだね。
Tridentの設計ポリシーは変わってない。
ブラウザのポリシーを変えるだけ。
924デフォルトの名無しさん:2015/02/02(月) 17:01:05.72 ID:d6JB6KlL
増改築の繰り返しでわけわかめになったtridentに代わって
一から再設計したEdge使うって話じゃないの?
925デフォルトの名無しさん:2015/02/02(月) 17:12:20.15 ID:3AEkduFQ
EdgeはTridentをフォークして作ったtte
ちゃんと書いてあるだろ
926デフォルトの名無しさん:2015/02/02(月) 17:33:38.76 ID:d6JB6KlL
フォークしたっつtteも
ほとんど別モンだろうな

なんで引き算でやってるんだろ?
再構築、リファクタリングなら必要なものだけを足し算でした方が早そうなのに
927デフォルトの名無しさん:2015/02/02(月) 20:22:01.54 ID:UKP5zWl9
たてました

Spartan (EdgeHTML)
http://peace.2ch.net/test/read.cgi/win/1422875493/
928デフォルトの名無しさん:2015/02/02(月) 23:02:33.22 ID:5ddZD6SB
>>929
再構築、リファクタリングは一般的に
必要ないものを取り除くことなんだけど?

新しい機能を追加する前(後にやることもある)に、
既存のコードを整理する。要らない所があれば消す。
この部分が、リファクタリングだよ。

リファクタリングは既存の動作を変えないことで
機能追加をリファクタリングとは言わない。
929デフォルトの名無しさん:2015/02/03(火) 04:33:38.43 ID:Q1ZKEngM
含まれる
930デフォルトの名無しさん:2015/02/16(月) 14:49:32.38 ID:8Z58kFg+
node.js 0.12.0 でも tsc は問題無く動いた
そんだけ
931デフォルトの名無しさん:2015/02/25(水) 12:26:19.43 ID:6KXCrYox
Roadmapの1.5の項目に追加があった
https://github.com/Microsoft/TypeScript/wiki/Roadmap
> Support for let and const on ES3/ES5
これマジか!グッジョブと言わざるを得ない

> Support for tagged string templates on ES3/ES5
意味が分からん…

> Expose a new editor interface through TS Server
これは楽しみだ
VS以外でもメンバー補完とかが簡単に実装出来るようになりそう
932デフォルトの名無しさん:2015/02/25(水) 16:59:28.14 ID:Eak3EaAA
>>931
これも1.5に追加、と言うより2.0から前倒しされてるよ
>Support for ES6 Modules

async/awaitも早めに入れて欲しい
933デフォルトの名無しさん:2015/02/26(木) 01:41:07.32 ID:3l+O6N93
ダックタイピングのせいで型だけで整合性がとれないのが非常に残念
934デフォルトの名無しさん:2015/02/26(木) 07:05:06.51 ID:sBOEiQWy
>>933
そのための interface いう認識だったのだが、使えないケースがあるってこと?
935デフォルトの名無しさん:2015/02/26(木) 07:46:21.79 ID:vwRfeNTF
>>934
StringからSafeStringを定義してもstringが入るじゃん?
936デフォルトの名無しさん:2015/02/26(木) 08:12:59.52 ID:sBOEiQWy
>>935
SafeStringに何らかのメソッドを追加すれば弾かれるけど、何も追加しない場合の話?
strong typedef を想定しているのかな? それができる言語って結構限られると思うけど。
937デフォルトの名無しさん:2015/02/26(木) 08:20:52.10 ID:vwRfeNTF
何も追加しない場合の話
Haskellのように型だけで安全を確保したかった
938デフォルトの名無しさん:2015/02/26(木) 11:40:30.01 ID:ooujBOtt
>>935
class SafeString extends String {
はエラーになるけど、定義ってどういう事だ?
939デフォルトの名無しさん:2015/02/26(木) 17:12:46.92 ID:2m9jfAxi
>>938
interface SafeString extends String {}
var str: SafeString = ""
940デフォルトの名無しさん:2015/02/26(木) 17:38:24.66 ID:sBOEiQWy
interface にダミーメソッドを追加してデフォルトだと弾けるようにして、
キャストしたいときはanyを経由させてコンパイラを騙すくらいしか思いつかない
interface SafeString extends String { dummy(): void; }
<SafeString><any>"ABC";
941デフォルトの名無しさん:2015/02/26(木) 19:28:38.24 ID:ooujBOtt
>>939
ES6だとStringのサブクラスが作れるからそれ待ちだな
それか普通に包含すればいいじゃん
942デフォルトの名無しさん:2015/02/27(金) 10:19:55.28 ID:tBwaysiC
>>939
class Dummy {
 private _dummy: any
 constructor() { throw "Dummy" }
}
interface SafeString extends String, Dummy { }
function SafeString(x: string) { return <SafeString><any>x }
function unSafeString(x: SafeString) { return <string><any>x }


var s0: SafeString = "" // コンパイルエラー
var s: SafeString = SafeString("abc")
s._dummy // コンパイルエラー

class FakeSafeString extends Dummy implements SafeString { ... }
var fake: SafeString = new FakeSafeString() // 実行時エラー "Dummy"
943デフォルトの名無しさん:2015/02/27(金) 11:19:24.77 ID:9H6qoQ2T
>>942
Cool

declare class SafeContent {
private safe_: boolean
}
interface SafeString extends String, SafeContent {}
function SafeString(str: string): SafeString {
return <SafeString><any>str;
}

var unsafe: string = "";
var safe: SafeString = SafeString("");
var err1: SafeString = "";
var err2: SafeString = new SafeString("");
944デフォルトの名無しさん:2015/02/28(土) 03:56:48.13 ID:7btd6iQJ
>>932
自己レスだが、早速来てたわ

https://github.com/Microsoft/TypeScript/wiki/Roadmap/21d94626ac56a8e4441091f4134f1be740399ae3
>1.6
>Generators
>Async/await
945デフォルトの名無しさん:2015/02/28(土) 16:11:36.45 ID:YY6bJC4D
>>944
うお!2.0がどんどん空気になっていく…
あとはvirtual,overrideキーワードが実装されれば俺的にはもう十分
946デフォルトの名無しさん:2015/03/06(金) 11:47:53.86 ID:iWCN7DOB
http://techcrunch.com/2015/03/05/microsoft-and-google-collaborate-on-typescript-hell-has-not-frozen-over-yet/
AngularJS 2.0 は TypeScript で開発を進めることに

AtScriptとは何だったのか
947デフォルトの名無しさん:2015/03/06(金) 12:34:29.81 ID:BnNW7/uW
>>946
Angular 2: Built on TypeScript
http://blogs.msdn.com/b/typescript/archive/2015/03/05/angular-2-0-built-on-typescript.aspx

これ見ると1.5に実行時型情報のサポートを追加するように見えるな
追加されると何がどううれしいのかは全然分からん…
948デフォルトの名無しさん:2015/03/06(金) 22:11:26.14 ID:rB0vcOq6
Angular 2フレームワークとTypeScript言語でMicrosoftとGoogleが協働
http://jp.techcrunch.com/2015/03/06/20150305microsoft-and-google-collaborate-on-typescript-hell-has-not-frozen-over-yet/

AtScriptが言語としてデビューしたのは昨年の10月だが、
今後はAtScriptという名前は消えて、TypeScriptに統一されるようだ。

Angular 2はAngularの旧バージョンとの互換性が完全でないので、
デベロッパコミュニティからの批判がとても多い。
Microsoftが作った言語を使うことも、一部の人たちは気に食わないようだ。
でもこれは明らかにTypeScriptの勝利であり、
しかもそれは、昨年1.0がリリースされて以来、着実にユーザ数が増えているのだ。
949デフォルトの名無しさん:2015/03/07(土) 00:25:38.85 ID:uYvMvPbm
しかしTypeScriptをパクった言語って他にも幾つかあった気がする
労せずおいしい所だけを持っていこうとするのは何か解せないものがある

ただTypeScriptが刺激を受けたのか進化がやたら早くなったのは良い影響といえるかな
950デフォルトの名無しさん:2015/03/07(土) 07:17:48.10 ID:Rnf8iriw
>>949
「TypeScriptをパクった」といえるほど独自性あるっけ?
構文はそのままに型情報を付加するっていう基本部分は、遥か昔からいくらでもあるでしょ。
Python系であったのは覚えてる。

ヘタに拡張せず、型情報とES6の先取りに絞ったMSのセンスは褒めたいけど。
951デフォルトの名無しさん:2015/03/07(土) 09:32:26.30 ID:+HdY4ynp
AngularのTS向けにVS以外のIDEがさらに使いやすくなるといいね。

TSはHaxeやCoffeeScriptなどの後に出てきた、センスのいいやつというぐらいの認識ぐらい。
952デフォルトの名無しさん:2015/03/09(月) 12:08:29.89 ID:gYKpluIX
>>951
TypeScriptはJavaScriptの上位互換というか完全版とも言うべき言語
だからHaxeとかのAltJSと違って、TypeScriptを選択することでデメリットは全く無いと言ってもいい
(完全に主観だが)
953デフォルトの名無しさん:2015/03/09(月) 13:42:55.41 ID:NnzyOe/j
CoffeeScript のゆるさが好きな漏れには
TypeScript
954デフォルトの名無しさん:2015/03/09(月) 13:43:35.15 ID:NnzyOe/j
の良さがいまいち判らない

普段は C / C++ / Python 使いです
955デフォルトの名無しさん:2015/03/09(月) 13:51:56.85 ID:gYKpluIX
>>953
JavaScriptを使ってる人がTypeScriptにしてもデメリットが少ないだろうってだけで
CoffeeScriptを否定するつもりも全く無い

言語の良い悪いは結論が出る話じゃないしな
956デフォルトの名無しさん:2015/03/09(月) 22:08:19.35 ID:w6ZsvPuh
ただ、今後廃れる言語は使いたくない。
TypeScriptとCoffeeScriptだと、Type優勢なの?
957デフォルトの名無しさん:2015/03/09(月) 22:51:11.61 ID:4i/HOWxM
安定のヘルスバーグだからね
958デフォルトの名無しさん:2015/03/09(月) 23:00:17.44 ID:eiwQNP/A
ライブラリ使用時の若干の煩わしさがもっとスマートに解決出きる様になったら
手を出そうかと思う
959デフォルトの名無しさん:2015/03/10(火) 04:27:52.66 ID:IH2/HTQ/
googleがTypeScript使いだしたからな
960デフォルトの名無しさん:2015/03/10(火) 08:43:28.10 ID:rcROwI0d
http://qiita.com/Cat_sushi/items/04abb9a1d248131bf5c0
>10月に投入されたAngular 2はAtScriptで記述された、より良く、より速いフレームワークです。
>ここで、AtScriptは当初からTypeScriptの拡張です。

>重要ポイント: Angular 2はこれまでもずっとTypeScriptで構築されてきました。

言いたいことは分かるが、いまいち納得いかない…
961デフォルトの名無しさん:2015/03/10(火) 09:34:26.22 ID:GWDqHHzE
Angular はワシが育てた(キリっ)
962デフォルトの名無しさん
煩わしいし、angularから離れてbackbone.jsに戻ろうかな