トップページtech
985コメント300KB

TypeScript part1

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001 ◆9Zst2CqO/Y 2012/10/02(火) 23:18:47.60
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.
0002デフォルトの名無しさん2012/10/03(水) 00:08:43.70
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

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

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

Visual Studioに自然な感じで統合されると思うな。
0005デフォルトの名無しさん2012/10/03(水) 00:44:06.13
>>3
なんでMSがEclipseとかXcodeみたいなクソのためにそんなもんを用意せにゃならんのだ?
0006デフォルトの名無しさん2012/10/03(水) 01:25:26.25
なんかさ・・・全然騒がれていないけどさ・・・これって・・これって・・・
と て つ も な く 凄 く ね ?
歴史が動く瞬間に立ち会っちゃったかも・・・
0007デフォルトの名無しさん2012/10/03(水) 02:00:32.70
何が凄いのか全く分からん。
0008デフォルトの名無しさん2012/10/03(水) 02:03:29.49
パッと見、相当凄いが
0009デフォルトの名無しさん2012/10/03(水) 02:06:29.02
標準JavaScriptをベースにしているって所が
凄いじゃないかな。
00102012/10/03(水) 02:08:33.86
すごさが全然わかりません
Coofee Scripterにもよくわかるように教えてください
0011デフォルトの名無しさん2012/10/03(水) 02:11:39.87
コーヒースクリプトは
何もえるものがないからなぁ。
少し書き方が変わっただけ。
0012デフォルトの名無しさん2012/10/03(水) 02:18:55.50
何も分かってない奴がとりあえず凄い凄いと言ってて笑える
00132012/10/03(水) 02:20:23.29
>>11
https://twitter.com/ghoseb/status/25000171530
0014デフォルトの名無しさん2012/10/03(水) 03:11:01.47
そもそも、coffee scriptやpythonにメリットなんてあっただろうか
とレスしようとして>>13で思い直した。
けれど、pythonみたいに空白インデントが構文な言語をhtmlに埋め込みたいか?
0015デフォルトの名無しさん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
おんたいだったし
0016デフォルトの名無しさん2012/10/03(水) 03:51:38.10
https://npmjs.org/package/typescript
http://blogs.msdn.com/b/interoperability/archive/2012/10/01/sublime-text-vi-emacs-typescript-enabled.aspx

$ node -v
v0.6.19
$ npm install -g typescript

translates as follows:
http://developers.slashdot.org/story/12/10/01/2011201/typescript-microsofts-replacement-for-javascript
http://typescript.codeplex.com/

だんだん
0017デフォルトの名無しさん2012/10/03(水) 03:58:14.06
「だんだんありがとう」が全国に伝播し、
日本海側、中国、四国、九州において方言として定着した。
定着する際に、西日本各地では「ありがとう」が省略されて「だんだん」のみで感謝

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

出川哲郎曰く「やばいよやばいよ private の意味がほとんど成してないよこれ」
0021デフォルトの名無しさん2012/10/03(水) 10:39:00.49
ワロッシュwww
0022デフォルトの名無しさん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から呼び出す)
0023デフォルトの名無しさん2012/10/03(水) 16:34:29.94
>>22
何が言いたいのかさっぱりわからない
00242012/10/03(水) 16:37:02.84
コミュ障なんだろそっとしといてやれ
0025デフォルトの名無しさん2012/10/03(水) 19:39:01.67
node x typescript = answer
0026デフォルトの名無しさん2012/10/03(水) 19:50:57.24
better java の C#に
better javascript の typescript か

java と名のつくものに怨みでもあるのかな
もう SUN は存在しないのに
0027デフォルトの名無しさん2012/10/03(水) 20:40:56.09
そもそもJavaScriptが使いにくいのは型付けが弱いからであって
動的か静的かということはあまり関係ないような気がする。
0028デフォルトの名無しさん2012/10/03(水) 21:05:54.90
JavaScriptは人類の負の遺産
00292012/10/03(水) 21:09:27.40
JavaScriptに乗り遅れた人はJavaScriptをけなす
0030デフォルトの名無しさん2012/10/03(水) 21:12:00.15
乗る前から潰れてるンだけど。
0031デフォルトの名無しさん2012/10/03(水) 21:22:32.17
Javascriptおもしろいじゃん?
00322012/10/03(水) 21:25:55.27
面白いと思うけど一度見下し癖ついてる人には難しそうだねー
0033片山博文MZボット ◆0lBZNi.Q7evd 2012/10/03(水) 21:26:56.23
Webアプリじゃないアプリは作れるのか?
0034デフォルトの名無しさん2012/10/03(水) 21:27:33.82
>>33
sine
0035デフォルトの名無しさん2012/10/03(水) 21:30:50.59
>>34 cosine tangent
0036デフォルトの名無しさん2012/10/03(水) 21:31:57.46
JSのどこを見下すんだろう?
関数はファーストオブジェクトだし、Lなんとなかみに自由。
マクロは無いが。
0037デフォルトの名無しさん2012/10/03(水) 21:36:05.90
JavaScriptってブラウザがいるんでしょ。おそいでしょ
0038片山博文MZボット ◆0lBZNi.Q7evd 2012/10/03(水) 21:48:18.73
三角関数も知らないガキか?
100年早いんだよ
0039デフォルトの名無しさん2012/10/03(水) 21:50:13.89
三角関数が煽りになると思ってるセンスがよく分からん
0040デフォルトの名無しさん2012/10/03(水) 22:24:08.07
ブラウザにたよってると、ちゃんとよめないページになってしまうおそれがある
0041デフォルトの名無しさん2012/10/03(水) 22:29:40.68
>>33
組込みの話ならお門違い
大体、世の中の需要のほとんどはwebアプリで事足りるでしょ
0042デフォルトの名無しさん2012/10/03(水) 22:38:28.33
2chブラウザもwebアプリで十分だよな
エディタも音楽プレイヤーも
0043片山博文MZボット ◆0lBZNi.Q7evd 2012/10/03(水) 22:42:01.28
>>41 WSHとAPI呼び出しのサポートあればウィンドウアプリも作れるかもと期待してた。無理っすか?どうも有り難う
0044デフォルトの名無しさん2012/10/03(水) 22:45:31.58
できるでしょ。これってトランスレータだろうから、winjsつかえば
0045デフォルトの名無しさん2012/10/03(水) 23:20:54.85
C#作った人が作ってるのか
http://channel9.msdn.com/posts/Anders-Hejlsberg-Introducing-TypeScript
ヘルスバーグ神格化されてるなw
0046デフォルトの名無しさん2012/10/04(木) 00:55:14.10
そりゃTurbo Pascal作ってDelphi作ってC#作れば神格化されるさw
0047デフォルトの名無しさん2012/10/04(木) 01:23:13.24
googleも最近似た感じの言語作ってたけど、どっちがいいの?
0048デフォルトの名無しさん2012/10/04(木) 01:24:47.19
素のJSじゃやってらんねーからいろんなところが代替を出してるんでしょうが。
Javaも似たような状態だな。
0049デフォルトの名無しさん2012/10/04(木) 02:28:29.51
>>47
dartやgwtより、こっちの方が魅力的。jsのスーパーセットになってる。
0050デフォルトの名無しさん2012/10/04(木) 02:45:03.69
口をそろえて言ってるが、噴飯モノだよなあ
そもそも使ってから褒めろよと
0051デフォルトの名無しさん2012/10/04(木) 03:30:45.23
jsのスーパーセットで既存のライブラリも使えるから試そうと思うけれど、
dartなんて試そうなんて気すらおこらなかったよ
0052デフォルトの名無しさん2012/10/04(木) 03:36:16.27
jsよりはdartの方が遥かに優れてるよ
だからjsのスーパーセットとか言われたら不安しかない
0053デフォルトの名無しさん2012/10/04(木) 03:42:04.81
なわけない。dartなんてjava系統で動的言語の柔軟性なんて欠けている
0054デフォルトの名無しさん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
0055デフォルトの名無しさん2012/10/04(木) 05:40:16.87
>>53
typescriptこそJava並なみのヘビー言語だから心配すんな
0056デフォルトの名無しさん2012/10/04(木) 06:28:30.70
とうとう勝負を決する時が来たようだ、LL War
0057デフォルトの名無しさん2012/10/04(木) 06:59:38.96
スクリプトなのにヘビーとはこれいかに
0058デフォルトの名無しさん2012/10/04(木) 09:57:42.40
>>56>>57
いちいちコンパイルしないと使えないしLLじゃねーよ。糞言語
0059デフォルトの名無しさん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
0060デフォルトの名無しさん2012/10/04(木) 10:31:17.48
>>58
これを用いてJavascriptが勝利すると言う事だよ
馬鹿か?お前
0061デフォルトの名無しさん2012/10/04(木) 10:52:40.34
Javascriptが糞すぎてどうしようもない
0062デフォルトの名無しさん2012/10/04(木) 13:40:18.04
コンパイラまだーチンチン
0063デフォルトの名無しさん2012/10/04(木) 13:58:41.35
>>62
最新のブラウザにはJITコンパイラが入ってるから、単体のコンパイラなんか、もういらないと思う。
0064デフォルトの名無しさん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の段階なのだ
0065デフォルトの名無しさん2012/10/04(木) 14:47:31.27
Cは規格なんか決まる前にコンパイラ出たけど?
0066デフォルトの名無しさん2012/10/04(木) 16:06:03.64
コンパイラってもう出てるよな?
こいつら何の話してんだ?
0067デフォルトの名無しさん2012/10/04(木) 19:22:51.64
とりあえずCoffeeScriptとDartが一瞬でオワコン化したという解釈でおk?
0068デフォルトの名無しさん2012/10/04(木) 19:23:29.40
あとはJavaScriptが「お前はクソだ。使い物にならん」と
四方八方からタコ殴りにされているという認識
0069デフォルトの名無しさん2012/10/04(木) 19:25:56.71
長所:JavaScriptがそのまま通る
短所:JavaScriptがそのまま通る
0070デフォルトの名無しさん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

結局デファクトとったとこ&さまざまな試みによる知見に元づく合意
その記法が標準になる
0071デフォルトの名無しさん2012/10/04(木) 21:56:54.68
結局のところJavaScriptはそのままで普及しているので
それに準拠したやり方が最良なんだろうな。
0072デフォルトの名無しさん2012/10/04(木) 22:45:48.78
JSしか書けないウンコプログラマだけが
JSで問題無いと思ってる
0073デフォルトの名無しさん2012/10/04(木) 23:18:41.73
いろんな言語で幅広く仕事をしたが
結局のところ、言語の良し悪しは
大した問題ではない。
0074デフォルトの名無しさん2012/10/04(木) 23:25:12.10
じゃあアセンブラで業務アプリ書いて
0075デフォルトの名無しさん2012/10/05(金) 00:00:20.72
>>73が使った言語: Java, VB, Perl, PHP, JS
0076デフォルトの名無しさん2012/10/05(金) 00:50:23.87
>>73
>>73が使った言語:�lisp,�c++,�c,�haskel,�c#
0077デフォルトの名無しさん2012/10/05(金) 01:28:13.01
でもjavascriptで開発するとソース丸見えじゃね?
0078デフォルトの名無しさん2012/10/05(金) 01:36:09.64
サーバーありきだからどうでもいい
0079デフォルトの名無しさん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の構文のみが使える
エンジンは非公開だからなぁ…ブラウザ対応次第かと(特にモバイル
0080デフォルトの名無しさん2012/10/05(金) 04:16:11.04
>>73
アセンブリャーからObjective-Cまでいろんな言語で幅広く仕事をしたが
言語の良し悪しは大した問題ではない(APIや周辺コミュニティのほうが重要)という通念を覆すほど
JavaScriptはクソ

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

要はろくに大規模開発したことのない、レベルの低いJavaScripterどもが
駄サイクルを作ってたんだなという認識ですね。
0082デフォルトの名無しさん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にまでノーと言われたんだよ。
0083デフォルトの名無しさん2012/10/05(金) 06:54:50.23
cにclassとinterfaceとgcとarrayとhash付ければ
それでよかったんだよ、IDEも豪華に対応できたんだよ
言語開発者はみんな余計な物付けすぎ
0084デフォルトの名無しさん2012/10/05(金) 08:23:06.55
>>81
典型的な一ヶ月程度勉強しただけの
やつの感想ですねw
0085デフォルトの名無しさん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"));
0086デフォルトの名無しさん2012/10/05(金) 09:23:17.34
C#でもJavaでも通るよ
0087デフォルトの名無しさん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 軒並みアウトなんや
0088デフォルトの名無しさん2012/10/05(金) 09:42:02.14
MSと違って規格がポシャったら互換性切っても怒られないからな
0089デフォルトの名無しさん2012/10/06(土) 00:03:37.41
>>86
C#もJavaも糞言語じゃん
0090デフォルトの名無しさん2012/10/06(土) 00:18:37.03
>>89
じゃあお前の好きなクソ言語の名前言ってみな。
それがクソかどうか判断してやるからさw
0091デフォルトの名無しさん2012/10/06(土) 01:06:52.73
ドカタの判断 = 俺に使いこなせない言語はクソ
0092デフォルトの名無しさん2012/10/06(土) 02:22:41.18
使いこなせないんじゃない。
ドカタ言語をあえて選ばないだけだ。
0093デフォルトの名無しさん2012/10/06(土) 06:11:05.60
JSを使うくらいならTypeScriptを使ったほうがマシというだけで、JS以外の言語より良いという話ではないよ
それにまだ未完成品だし
0094デフォルトの名無しさん2012/10/06(土) 10:59:35.49
言語の良し悪しは、言語仕様よりも、言語環境できまる。

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

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

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

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


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

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

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

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

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

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

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

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

型の問題っていうのは、互換性がない型、オーバーロードも定義さていないもの、
無関係のものを代入したら動かないのに、それが実行されるまで
わからないってのが問題なのに。
0120デフォルトの名無しさん2012/10/06(土) 21:58:45.78
言語仕様の範囲ならどんな振舞いだって原理的に予測可能だわな
0121デフォルトの名無しさん2012/10/06(土) 22:00:55.75
>>119
むしろ動いちゃうのが問題
>>85で引数に型指定しない場合だと、x, yの内容によって+の挙動が全く異なってしまう
さすがに+使うときは、文字列連結か数値加算かどちらか一方しか期待してないだろうから、
予期しない動作によるバグの原因になる。
型を指定するなら何の問題もない。
0122デフォルトの名無しさん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#を作れるところだし、今後に期待ってところか
0123デフォルトの名無しさん2012/10/06(土) 22:37:34.93
それってC#で言えば
private var func(){...}
で型推論してくれよって話じゃないか。
0124デフォルトの名無しさん2012/10/06(土) 22:47:46.52
>>122
型推論はAIじゃねぇよ。
どちらでも取れる問題の
正解を出せなんて不可能な話。
0125デフォルトの名無しさん2012/10/06(土) 23:10:28.55
どちらでも取れる?
hoge()の戻り値はstring以外ありえんだろ
0126デフォルトの名無しさん2012/10/06(土) 23:12:02.77
>>125
どこかでオーバーライドするかもしれんだろ。
windows.hoge = function () {return 123}
0127デフォルトの名無しさん2012/10/06(土) 23:14:24.55
>>126
>>122でstring返す関数にnumberって型書いてエラーにならないのと
何の関係があるのそれ
0128デフォルトの名無しさん2012/10/06(土) 23:16:05.29
>>126
それは無いものと考えないと静的解析の意味無い
ジェネリックには対応する予定らしいからもうちょっと型推論も強力にはなるんじゃないの
0129デフォルトの名無しさん2012/10/06(土) 23:21:13.60
上はエラーになって下がエラーにならないんだから、もうね...

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

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

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

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

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

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

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

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

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

TypeScriptにはそれは当てはまらなくて、将来のECMAScriptを
先取りしているから、JavaScriptの正統な進化版として考えることが出来る。
0160デフォルトの名無しさん2012/10/07(日) 02:51:35.93
>>154
ヘルスバーグの名前が出てるからとりあえずみんな様子見てるんじゃないの?
0161デフォルトの名無しさん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
0162デフォルトの名無しさん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 はオブジェクトみたいに扱われてるんだなと…
0163デフォルトの名無しさん2012/10/07(日) 08:31:48.05
>>159
Dartを良い言語と言ってる時点で
Java, JS, Perl, PHP程度しか使った事が無い
ドカタまるだしなのが分かる。
もうちょっとマトモな言語も使ったら良いよ。
0164デフォルトの名無しさん2012/10/08(月) 11:12:46.64
マトモな言語教えてください
0165デフォルトの名無しさん2012/10/08(月) 14:20:32.38
VB
0166デフォルトの名無しさん2012/10/08(月) 15:45:07.25
>>72
jsだけで飯が喰えるのに、いくつも言語おぼえる必要があるなんて
2次請け、3次請け以下の大した技術力のない奴隷商に飼われているとしか思えない。
0167デフォルトの名無しさん2012/10/08(月) 15:54:21.68
むしろjsの仕事なんてドカタ仕事しかない
0168デフォルトの名無しさん2012/10/08(月) 16:13:57.29
また苦しくなったらドカタかw
よっぽど都合がわるいんだろうなw
0169デフォルトの名無しさん2012/10/08(月) 16:15:40.20
他人が薄給ドカタ仕事を引き受けてくれるのに
何の都合が悪いというの?
0170デフォルトの名無しさん2012/10/08(月) 16:22:08.31
>>166
底辺の奴らだけが、奴隷市場の流行に合わせて
Java, VB, PHP, JavaScript 等を覚える必要がある
0171デフォルトの名無しさん2012/10/08(月) 16:27:02.20
>>169
いや、単純にじゃあドカタじゃないやつは
なんて呼ぶの?って話だよw
0172デフォルトの名無しさん2012/10/08(月) 16:31:15.67
週40時間労働、年収800万以上でプログラマを名乗れます
それ以下はドカタ
0173デフォルトの名無しさん2012/10/08(月) 16:39:55.06
>>172
ダウト。それだと学生プログラマは存在せず
学生ドカタということになってしまう。
0174デフォルトの名無しさん2012/10/08(月) 16:42:47.73
え?文脈的に働いてる人の話だって分からない?
ドカタに文脈なんて無理かー
0175デフォルトの名無しさん2012/10/08(月) 16:44:18.74
>>173
え?お前が書いた>>166って学生も対象にしてたの?
0176デフォルトの名無しさん2012/10/08(月) 17:10:33.74
プログラマとドカタなんて俺からみたら違いはない。
喧嘩せずに仲良くやりなよ。
そんなことよりtypescriptでひとつなんか作って公開してみて
作った感想でも披露してみないか?
0177デフォルトの名無しさん2012/10/08(月) 17:12:19.96
>>175
常識でわかるだろw
0178デフォルトの名無しさん2012/10/08(月) 17:40:18.99
常識で分かります。>>173が馬鹿だってことが。
0179デフォルトの名無しさん2012/10/08(月) 23:12:20.09
なんで2ch掲示板ってこうなるんだろ
匿名だからでは説明できない。redditと比べても明かに低レベル
日本人の資質か
0180デフォルトの名無しさん2012/10/09(火) 02:50:38.07
日本人の資質だからでは説明できない
0181デフォルトの名無しさん2012/10/09(火) 05:20:26.98
反応の速さにこだわるから
即答できなければレベル高くても失格という風潮
0182デフォルトの名無しさん2012/10/09(火) 06:54:35.45
推すのは得意というか
でも肝心要で引き際を誤る

そしてデスマへ。責任論を巡って議論。
このパターンはとても多いと思う
0183デフォルトの名無しさん2012/10/09(火) 07:16:52.33
ここは全部自演も余裕だからサンプルにはならんけどね
0184デフォルトの名無しさん2012/10/10(水) 01:16:38.55
>>179
それ、比較対象がおかしくね?4chが妥当
0185デフォルトの名無しさん2012/10/10(水) 04:50:34.46
>>184
4chはふたばだろアホ
0186デフォルトの名無しさん2012/10/10(水) 04:51:47.08
       //
     /  /   バカッ
     //⌒)∩__∩
    /.| .| ノ     ヽ
    / | |  ●   ● |     
   /  | 彡  ( _●_) ミ 馬鹿には無理
   /  | ヽ  |∪|  /_
  // │   ヽノ  \/
  " ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ
0187デフォルトの名無しさん2012/10/10(水) 06:42:09.15
まあIT関連のニュース記事やブログ記事も日本語のやつは平均的に劣ってるからな
0188デフォルトの名無しさん2012/10/10(水) 08:04:29.22
平均が優秀ではないのは当然です
まず基本的なことから始めないと最先端のニュースも扱えません
0189デフォルトの名無しさん2012/10/10(水) 08:11:29.44
基本的な部分がダメだから言ってんだろw
0190デフォルトの名無しさん2012/10/10(水) 08:12:45.01
別に内容の難易度で優劣付けてないわ。質だよ質
0191デフォルトの名無しさん2012/10/10(水) 08:27:59.51
量ではなく質なら優秀なやつが数人いるだけでいい
0192デフォルトの名無しさん2012/10/10(水) 15:00:15.97
よくそんなズレた頓珍漢なレスできるな
0193デフォルトの名無しさん2012/10/10(水) 15:19:50.41
言語に優劣がある
のではなく
ただの馴れと慣習による部分が大きいだけだ。流儀は場所によって変わるのは当然
0194デフォルトの名無しさん2012/10/10(水) 15:31:56.93
現実に言語には優劣がある
ただしそれは一方の角度から見た場合の優劣であって
別の角度から見ればまた違う優劣が現れる
すなわちVBは馬鹿用なのでRubyより劣るとしても
速度ではRubyの方が劣っていたりする訳だ
0195デフォルトの名無しさん2012/10/10(水) 16:09:59.15
rubyとかすかしたかっこつけたい奴が使ってるだけでしょ
VBAでいいじゃん
0196デフォルトの名無しさん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つに統合された。
0197デフォルトの名無しさん2012/10/10(水) 19:53:12.74
じゃあ、初めからNode.jsでやっときゃ良かったのに、
って話でも無いんだろうな。
サービスを色々試行錯誤する分にはRubyの方が楽だったのかも。
0198デフォルトの名無しさん2012/10/10(水) 20:37:48.80
railsとnode.jsって用途ちがくね?
0199デフォルトの名無しさん2012/10/10(水) 21:47:44.64
>>154
> MSだからいつものようにボロカスに叩かれるかと思ったら

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

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

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

たとえば変数Aがあったとき、
この型を推論できる言語はない。
0221デフォルトの名無しさん2012/10/11(木) 21:09:22.41
お前は何を言ってるんだ
0222デフォルトの名無しさん2012/10/11(木) 21:20:06.73
場合によっては型推論があっても
型注釈を必要とするケースはあるが、
低能さが文面から滲み出てる>>220が考えつく程度のコードなら
型推論できると思うぞ
0223デフォルトの名無しさん2012/10/11(木) 22:03:10.22
function(x,y,z){return x===y ? y : z;}
x,y,zの型は同じ
同じならnumberでもstringでもなんでもいい
0224デフォルトの名無しさん2012/10/11(木) 23:20:15.99
VB、C#、F#、C++/CLI、F#、Powershell、TypeScript
MSの言語設計センスは神懸ってるよな
玩具のSmallBasicですら非常にバランスのいいちゃんとした言語だし
どっかのGoogleとはえらい違いだ
0225デフォルトの名無しさん2012/10/11(木) 23:29:06.34
型を二回書くだけでツールがいろんなことをやってくれる
クラスやメソッドや引数の細かい情報までを
キー一押しまたは何もせずに表示してくれる
これほどすばらしい機能は他にないよ
君らは天才だから膨大な量のリファレンスを丸暗記して
書いたクラスのメンバの引数までも完全把握してるんだろうけど
俺みたいな凡人は記憶力弱いから無理なんだよ
言語開発者も天才ばかりだから俺みたいな凡人の苦労はわからない
凡人向け開発ツールを天才たちは作ってくれないから自分で作るしかない
だからこそ型情報を全力で守らなければならないのだよ
型を軽視する言語は天才にしか扱えないんだよ
0226デフォルトの名無しさん2012/10/11(木) 23:34:15.63
<T>を軽視する言語は今すぐ<T>を追加しろー
0227デフォルトの名無しさん2012/10/11(木) 23:36:59.53
Playgroundって開発環境として提供されないのかな
デモ用にしておくにはもったいない出来
0228デフォルトの名無しさん2012/10/11(木) 23:42:34.36
googleの言語、開発ツールは2流だよね
0229デフォルトの名無しさん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 にあたるものが欠けてるような
0230デフォルトの名無しさん2012/10/12(金) 06:09:05.61
>>223
多相型も知らんの?馬鹿ですねー
それくらい楽勝で型推論できる
0231デフォルトの名無しさん2012/10/12(金) 11:27:47.74
function<T>(x: T, y: T, z: T){return x===y ? y : z;} だな
ジェネリックは早期に導入予定
0232デフォルトの名無しさん2012/10/13(土) 12:34:14.40
interface console {
time(obj:string);
}

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

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


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

ただ、組み込みクラスに対する拡張は挙動が変(Consoleに限らずArrayとかも)で
これはただたんなるバグなので次版では直してくるでしょう。
0235デフォルトの名無しさん2012/10/13(土) 18:23:55.40
ちょっと触ってみたけど
構造的部分型を採用してるとこはポイント高いね
0236デフォルトの名無しさん2012/10/13(土) 18:36:56.77
VSのプラグインって動作が怪しいねえ。
インストールするとVSが起動時に例外をスローして落ちるようになった…
0237デフォルトの名無しさん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/
0238デフォルトの名無しさん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
0239デフォルトの名無しさん2012/10/18(木) 19:19:00.00
そんな事よりDartしようぜ!
0240デフォルトの名無しさん2012/10/18(木) 21:23:36.92
TypeScriptの変換後のJavaScriptコードの美しさを見たら
Dartなんかクソほどの価値もないことがわかる
0241デフォルトの名無しさん2012/10/18(木) 21:37:20.58
TypeScriptは、JavaScriptは中間言語とか抜かしてる馬鹿へのアンチテーゼ
0242デフォルトの名無しさん2012/10/19(金) 00:35:48.55
JSはネットのbytecodeか?
http://brendaneich.github.com/Strange-Loop-2012/#/
0243デフォルトの名無しさん2012/10/19(金) 03:50:20.03
>>242
JSがとんでもない言語になりそうな予感・・・
読んでてちょっと笑ってしまったw
0244デフォルトの名無しさん2012/10/19(金) 17:14:46.55
お花畑すぎて吹いた
0245デフォルトの名無しさん2012/10/20(土) 15:42:08.05
TypeScript 基本的には好きなんだが、もう少し、記述方法に制限を掛けて欲しかったね。
この言語仕様だと、いろいろな表記が可能だから、プログラムが読みにくくなりそう。
0246デフォルトの名無しさん2012/10/20(土) 22:52:25.76
JavaScriptが通らないといけないという大前提があるから仕方ない
0247デフォルトの名無しさん2012/10/20(土) 23:24:57.14
Web以外で使いたいから、int64_tに相当するのも欲しいけど、
Javascriptにコンパイルできなくなるしな。
0248デフォルトの名無しさん2012/10/21(日) 19:07:30.03
Dartみたいに糞JavaScriptを吐いていいならエミュレーションで実装できるよ
0249デフォルトの名無しさん2012/10/21(日) 22:28:37.40
プログラムファイルに、#lang r6rsみたいに書き込んで
文法チェック切り替える言語もあるね。
0250デフォルトの名無しさん2012/10/23(火) 18:49:47.35
PowerShellをTypescriptで置き換えよう(回帰)
0251デフォルトの名無しさん2012/10/29(月) 15:04:42.13
モジュールの下に宣言したインターフェイスを
モジュールの外のクラスで実装するにはどうしたらいいんだろう
0252デフォルトの名無しさん2012/11/10(土) 18:01:12.67
高度に発達したプリプロは言語と見分けがつかない
0253デフォルトの名無しさん2012/11/10(土) 18:03:26.18
>>242-244
一応言っておくが、ブレンダン・アイクは
オリジナルのJavaScript(当時livescript)の開発者だぞ
0254デフォルトの名無しさん2012/11/10(土) 21:30:45.70
JavaScriptがこれほど使われてるのはJavaScriptが言語として優れているからでは決してないし
むしろクソ言語を生み出した元凶じゃないか
0255デフォルトの名無しさん2012/11/10(土) 22:20:26.75
クロージャがなければ即死だった
0256デフォルトの名無しさん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/
構文は簡潔ではあるよね。
0257デフォルトの名無しさん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
0258デフォルトの名無しさん2012/11/11(日) 18:39:09.11
>>254
言語としてはそれほど悪くないよ。
Perl, PHP, VBと比べたら天使が舞い降りてきたみたいなもん。

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

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

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

C++や他の言語でもマルチ開発ができる、
実際多数のアプリケーションがやってるということが最近忘れられがちっつーか
ウェブ界隈の連中は最初から知らないんじゃねえかとすら疑ってる(´・ω・`)
0291デフォルトの名無しさん2012/11/14(水) 10:18:25.07
PC以外もターゲットにするならネイティブ(Monoみたいなのも含めて)の方が
ずっとクロスプラットフォームだしな
0292デフォルトの名無しさん2012/11/15(木) 16:44:21.21
まあ今後はJavascript優勢になるのは間違いないよ。
0293デフォルトの名無しさん2012/11/15(木) 16:52:42.86
Googleさんが全力で阻止してくれます
0294デフォルトの名無しさん2012/11/15(木) 17:06:46.63
>>289
黙れクズw
悔しかったらブラウザウィンドウ上で動くJSより素晴らしい言語とやらを作れよw
0295デフォルトの名無しさん2012/11/15(木) 17:17:58.33
CIL
0296デフォルトの名無しさん2012/11/15(木) 17:31:29.29
lljs.orgですねわかります
0297デフォルトの名無しさん2012/11/16(金) 16:31:48.18
今時何にそんな速度が必要なんだ?お前ら
0298デフォルトの名無しさん2012/11/16(金) 17:11:53.17
ChromeOSですよ、お前さん。
0299デフォルトの名無しさん2012/11/17(土) 11:15:57.72
死ねゴミ共が
死ねゴミ共が
死ねゴミ共が
死ねゴミ共が
0300デフォルトの名無しさん2012/11/25(日) 17:30:36.83
a
0301デフォルトの名無しさん2012/12/06(木) 17:23:30.55
すっかり勢いなくなったな。
使ってる奴いないのかな
0302デフォルトの名無しさん2012/12/06(木) 21:11:42.70
goのときと同じ流れ
0303デフォルトの名無しさん2012/12/06(木) 21:36:17.41
書いてるが良くも悪くも普通
ある程度の規模になりそうなコードに使って素のJSよりいくらか楽になるくらい
0304デフォルトの名無しさん2012/12/12(水) 19:24:34.39
個人的には好きだけど
Javaっぽい文法なんで、C#、ActionScript、Java、Haxe辺りは変換できそう
そういえば、ABAさんがそんなことを書いていたような
0305デフォルトの名無しさん2012/12/19(水) 04:39:42.12
>>290
>だいたいLLVM→JavaScript変換なんぞまわりくどい真似やってる暇があったら最初からネイティブで出すわw
既成コードの使いまわす為だろうし、
まともなクロスプラットフォームなツールなんて実際のところjavaしかない
0306デフォルトの名無しさん2012/12/31(月) 17:51:30.87
(゚∀゚)アヒャ
http://www.sellsbrothers.com/posts/Details/12724
0307デフォルトの名無しさん2012/12/31(月) 19:54:44.96
Win8ストアアプリでTypeScriptはないだろう。C#でいいわ。
Node.jsベースでTypeScript用のMVCフレームワークとかの方が受けると思う。
0308デフォルトの名無しさん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#は興味深い流れになっとるよね。
0309デフォルトの名無しさん2013/01/11(金) 08:29:49.69
nativeの世界には、CPU全コアフルロードになるコード書いて
タスクマネージャ眺めて喜んでるような変態がいるんだぜ(´・ω・`)
0310デフォルトの名無しさん2013/01/11(金) 09:20:58.30
暇人乙
0311デフォルトの名無しさん2013/01/11(金) 16:24:50.41
>>308
> HTML5がnative置き換えるだの言う奴らは
> その程度の仕事しかしていない

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

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

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

正直、断言するけどActionScript=ECMAScript 4ルーツのHaxeを使ったほうがいい。
0345デフォルトの名無しさん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="" />の参照指定はあくまでもコンパイル時のもので、
> 実行時の依存関係の解決は君自身の責務だよ」
0346デフォルトの名無しさん2013/01/24(木) 18:40:53.35
>>344
大規模開発支援より既に広まってる処理系群との互換性が大切
というのがECMAScript、というかアイクの公式見解。
ただ将来的にECMAScript 4の方向が否定されたわけではない。
0347デフォルトの名無しさん2013/01/24(木) 20:44:56.21
>>343
それがAMDだ
0348デフォルトの名無しさん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機構を持ってるから大して困らないよ。
0349デフォルトの名無しさん2013/01/25(金) 17:30:54.47
CofeeScript のスレはありますか?
0350デフォルトの名無しさん2013/01/25(金) 17:34:49.08
聞く前に検索ぐらいしろ
0351デフォルトの名無しさん2013/01/25(金) 17:44:22.96
>>348
TypeScriptのこと何にも知らないけど、一つだけ言える。

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

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

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

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

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

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

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

nodejs側の問題なのでTypeScriptとは直接関係ない。
0371デフォルトの名無しさん2013/01/30(水) 10:41:07.50
例外処理ちゃんとやってても落ちるもんは落ちる
ましてC++で拡張できたりするんだし
0372デフォルトの名無しさん2013/02/28(木) 22:14:41.16
Windows8 64bit、VS2012 Express for Webでプラグイン導入できた人いる?
インストールしてもテンプレートに出てこない。。0.8.1.1、0.8.2で試した。
ちなみにWindows7(32bit)ではうまくいった。
0373デフォルトの名無しさん2013/02/28(木) 22:23:26.87
ごめん解決した。
昨日0.8.3がリリースされてたみたいで、それ入れたら出てきた。
0374デフォルトの名無しさん2013/03/03(日) 16:07:40.23
以前の奴でもインストールされたとこにあるプラグインを自分でクリックすれば
インストール出来た
0375 忍法帖【Lv=2,xxxP】(1+0:5) 2013/03/10(日) 00:04:31.42
Eclipseで使える?
0376デフォルトの名無しさん2013/03/16(土) 17:59:38.77
Rubyが楽しいってデマ誰が広げたんだろうね
0377デフォルトの名無しさん2013/03/16(土) 18:48:50.43
オレ
0378デフォルトの名無しさん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?)

宣言ソースに必要なもの全部まとめようかと思ったんだけど、これがひっかかる
0379デフォルトの名無しさん2013/03/17(日) 17:17:30.94
エラーメッセージが不親切だけど、基本的には単にクラス名の衝突だと思う。
class Test { constructor() {} } をコンパイル単位に含めるなら、
declare class Test { constructor(); } は必要ないよ。
それかもしかして C/C++ プロトタイプ宣言みたいな使いかたしてない?
0380デフォルトの名無しさん2013/03/17(日) 17:32:44.12
>> 376
彼らは typo したり runtime error 出したり、半年前に自分が書いたコードが読めなくなって全部書き直したり、
クソ遅い処理系にほとんど意味のない最適化を施すのが、楽しくて仕方がないんだよ。
我々には理解できない性癖だけど。
0381デフォルトの名無しさん2013/03/17(日) 17:41:44.97
>>379
.d.tsファイルの仕様的に、C++っぽく使えてもいいのになぁっていう感じでした
別にエラーにしてくれなくてもいいのに。C++だってリンクするまでは衝突するかどうかわからないんだし
0382デフォルトの名無しさん2013/03/17(日) 18:21:46.95
>>381
TypeScript の declareは、C/C++ のプロトタイプ宣言というより extern に近いものだからね。C/C++ でも

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

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

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

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

BOM付きUTF-8では日本語が使えない。BOMなしUTF-8はOK、SJISはNG
Type[]はまだ使える。Arrayを拡張したい場合はinterface Array<T> { ...じゃないと駄目
構文チェックが厳格になった
0407デフォルトの名無しさん2013/04/30(火) 11:07:25.77
関数のシグニチャ、レシーバー(コンテキスト?)の型を規定することはできんのね
あとScalaのtraitみたいのがほしいなー。多重継承でもいいからお願いしますMS様
0408デフォルトの名無しさん2013/04/30(火) 12:17:01.31
目標はES6
0409デフォルトの名無しさん2013/04/30(火) 15:19:48.08
boolでいいじゃん
booleanとかいちいち打つのだるいわ
0410デフォルトの名無しさん2013/05/05(日) 11:25:44.32
ないなら作れよ
0411デフォルトの名無しさん2013/05/24(金) 07:01:20.91
0.9.0のソース上がってるな
0412デフォルトの名無しさん2013/06/19(水) 17:45:31.95
Announcing TypeScript 0.9
http://blogs.msdn.com/b/typescript/archive/2013/06/18/announcing-typescript-0-9.aspx
0413デフォルトの名無しさん2013/06/19(水) 20:33:35.85
TypeScript 0.9について語るAnders Hejlsbergらの動画
http://channel9.msdn.com/Blogs/Charles/Anders-Hejlsberg-Steve-Lucco-and-Luke-Hoban-Inside-TypeScript-09
0414デフォルトの名無しさん2013/06/20(木) 08:01:00.31
ジェネリクスは大きいな
0415デフォルトの名無しさん2013/06/21(金) 07:03:43.29
有名どころのライブラリ*.d.tsを大量配布してるサイトとかない?
0416デフォルトの名無しさん2013/06/21(金) 09:12:19.28
https://github.com/Diullei/tsd
https://github.com/borisyankov/DefinitelyTyped

こんなのあるよ
0417デフォルトの名無しさん2013/06/22(土) 02:14:14.01
まじか。これはGJというほかないわ
0418デフォルトの名無しさん2013/06/22(土) 10:46:36.28
テストはcoffeeでやろうかなあ
あんまり言語混ぜ混ぜもどうかと思うがtsでテスト書くのはちょっとだるい
0419デフォルトの名無しさん2013/06/22(土) 11:54:03.62
>>416
ありがと、助かるわー
0420デフォルトの名無しさん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#風言語らしいが…関数型言語好きやね
0421デフォルトの名無しさんNGNG?PLT(18001)
Collection<Collection<...>> みたいな型表現をしようとすると
A generic type may not reference itself with a wrapped form of its own type parameters.
というエラーがでる・・・何でこんな制限あるんですかね・・・実装の都合?
0422デフォルトの名無しさん2013/06/28(金) 08:32:18.10
前戯前に挿入するなってことじゃね?
0423デフォルトの名無しさん2013/08/09(金) NY:AN:NY.AN
Announcing 0.9.1
http://blogs.msdn.com/b/typescript/archive/2013/08/06/announcing-0-9-1.aspx

超高速レビュー: TypeScript 0.9.1
http://teppeis.hatenablog.com/entry/typescript-0.9.1
04244212013/08/10(土) NY:AN:NY.AN
入れ子型もいけるようになってたお
0425デフォルトの名無しさん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
0426デフォルトの名無しさん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'
ってすべきだ。
0427デフォルトの名無しさん2013/10/01(火) 00:58:37.16
型チェックできないのはその理屈でいいけど動いてしまうのが問題だって話でしょ
いくら型指定するようにしていても、どうしても型なしで扱わざるを得ない部分は完全に無くなりはしない
結論としては、実行時に型チェックをするオプションが欲しい、でFA
0428デフォルトの名無しさん2013/10/01(火) 01:48:24.89
assert(typeof a == "number");
とかを自分で書けばいいんじゃないかね。
0429デフォルトの名無しさん2013/10/01(火) 22:31:49.92
Haskellあたりを見習って
もっと真面目に型推論をすれば解決
0430デフォルトの名無しさん2013/10/01(火) 23:02:22.72
JavaScriptのコードが通らなくなるからムリ
0431デフォルトの名無しさん2013/10/01(火) 23:32:22.09
>>426
> エラーにならずに12(number)っていう戻り値になるのは

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

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

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

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

こじんてきにこのきょどうにふまんはないです。
0473デフォルトの名無しさん2013/12/06(金) 23:10:29.06
0.9.5リリース上げ!
動作の安定化とビルド時間の短縮が主な変更点かな。
0474デフォルトの名無しさん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;
}
0475デフォルトの名無しさん2014/01/07(火) 20:26:38.95
今年は1.0くるかね
0476デフォルトの名無しさん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; なんて回避コードがときどき必要になるね。
0477デフォルトの名無しさん2014/02/01(土) 09:36:07.23
TypeScriptとES6の関係がわからない。
ES6が普及したら いらない子になっちゃうの?
誰か背中を押してくれ
0478デフォルトの名無しさん2014/02/01(土) 11:17:58.87
ES6なんてまだ現実的な話じゃないけど、そこで悩むくらいならC++かDartあたり選ぶんじゃないか
0479デフォルトの名無しさん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に変換出来るようにするみたいだし、潰しは効くんじゃないか。
0480デフォルトの名無しさん2014/02/02(日) 12:27:45.35
>>479
なるほどー
0481デフォルトの名無しさん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" />
してある。
0482デフォルトの名無しさん2014/02/21(金) 22:08:33.50
-dオプションで.d.tsファイルが作れるのはすごく便利なんだけど
参照ファイルも全部記述してくれるせいで.d.ts側には必要ないものまで参照しちゃうな

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

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

これは気づかんで……。
0484デフォルトの名無しさん2014/02/22(土) 11:11:21.74
馬鹿には無理
0485デフォルトの名無しさん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.
0486デフォルトの名無しさん2014/02/22(土) 19:54:29.18
うおおおはやく発展しろおおおおお
みんな使おうぜええええええ
Coffee構文に対応したコンパイラとか出てこないかな
もはや別言語か
0487デフォルトの名無しさん2014/02/22(土) 22:43:38.36
0.9.5が出てからぱったり更新が止まったな
0488デフォルトの名無しさん2014/02/23(日) 03:41:31.24
0.9.7についてのドキュメントが出てきてる。
0489デフォルトの名無しさん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.
0490デフォルトの名無しさん2014/02/26(水) 21:09:18.22
おおー きたー
0491デフォルトの名無しさん2014/02/27(木) 00:02:02.15
コンストラクタを見せかけだけでいいから非公開にしたいんだけど
private constructorがコンパイルエラーなのがつらい
面倒になるから出来る限り宣言ソースは直に触れたくないんだよなぁ
0492デフォルトの名無しさん2014/02/27(木) 10:19:24.32
>>491
それは仕様バグなのか何らかのポリシーなのかわからんね。
0493デフォルトの名無しさん2014/02/27(木) 17:33:27.83
JavaScriptの仕様上コンストラクタの隠蔽だけは実現不可能だからだろうね
今のところ非公開要素のコンパイル後のコードはオープンな状態だし、許容してくれるようになればいいんだけど
0494デフォルトの名無しさん2014/02/28(金) 08:51:22.72
>>489
何が変わるんでしょ
なんだかんだ言いながら0.9.5で使えてるわ
0495デフォルトの名無しさん2014/02/28(金) 21:00:55.04
1.0RC関連
ttp://blogs.msdn.com/b/typescript/archive/2014/02/25/announcing-typescript-1-0rc.aspx
ttp://www.forest.impress.co.jp/docs/news/20140227_637313.html
0496デフォルトの名無しさん2014/03/05(水) 23:38:03.33
出力コードの最適化は来ないのかな
言語レベルの定数とかインライン展開でClosureコンパイラで手がまわらない所まで最適化したい
0497デフォルトの名無しさん2014/03/05(水) 23:41:36.34
たぶん出力jsの可読性考えてやってないんじゃない?
jsxとかあるから技術的には可能だと思うし
0498デフォルトの名無しさん2014/03/06(木) 01:46:21.89
>>496
mixinとかってこと?
0499デフォルトの名無しさん2014/03/07(金) 12:42:27.55
Eclipseのプラグイン使ってみたけど
VisualStudioに比べてインテリセンスが死ぬこともないしアウトラインも機能してる
エディターの色分けがまだ変えられないのと、宣言ファイルもソースフォルダの中に無いといけないのがちょっと不便
ファイル関係のことはリンクでカバーできるからまだ良し
0500デフォルトの名無しさん2014/03/08(土) 22:23:28.49
vs2013 + 1.0RCでプロジェクト作っていくつかTSファイル用意するとIntelliSenseもコード補完も効かなくなる
試しにプロジェクト作らずにそれらのTSファイル全部開いて、仮想プロジェクト上でやったら問題無いとかどういうことなん
プロジェクト作っちゃいかんのか
0501デフォルトの名無しさん2014/03/19(水) 08:57:18.73ID:BRRvET2J
>>500
システム中にnodejsが複数バージョンあると競合することがあるから注意な。
0502デフォルトの名無しさん2014/04/03(木) 12:41:06.17ID:UmXBHM51
TypeScript 1.0がリリースされた件について
http://blogs.msdn.com/b/typescript/archive/2014/04/03/announcing-typescript-1-0.aspx
0503デフォルトの名無しさん2014/04/03(木) 18:18:25.19ID:WU6I69c7
うほっ
0504デフォルトの名無しさん2014/04/03(木) 22:10:55.66ID:PIEAAVmi
>>224
なせま、すばらしい言語は作れるのに、すばらしいOSが作れないのか?
0505デフォルトの名無しさん2014/04/03(木) 22:31:57.98ID:KPZTHiBY
OSは、したばたらき。えんのしたのちからもち
0506デフォルトの名無しさん2014/04/03(木) 22:52:57.68ID:8aaFlPVZ
きたかー
0507 ◆9Zst2CqO/Y 2014/04/03(木) 22:53:53.75ID:PIEAAVmi
感慨深いです。
0508デフォルトの名無しさん2014/04/06(日) 11:48:59.26ID:/BRp7uTK
Microsoft、プログラミング言語“TypeScript”を正式リリース
ttp://www.forest.impress.co.jp/docs/news/20140403_642703.html
0509デフォルトの名無しさん2014/04/06(日) 15:20:08.24ID:oIpNwxzQ
“TypeScript”は、“JavaScript”へ静的型付け、クラス、モジュールといった機能を追加し、
多くのコンポーネントから成る大規模アプリケーションの開発に耐えうるものへ拡張
0510デフォルトの名無しさん2014/04/06(日) 21:51:24.11ID:axgq2NYC
TypeScriptでRequirejs使うのって何を意図してんの?
外部モジュールやreference path じゃ不都合の出るケースがあるの?
0511デフォルトの名無しさん2014/04/07(月) 09:23:58.16ID:cwHyx0pR
全てTypeScriptで成り立つなら使う必要はないかもしれないけど
参照以外はJavaScriptが相手だしな
0512デフォルトの名無しさん2014/04/08(火) 21:37:16.18ID:LxQtwqh5
Arrayのconcatに値と配列を一緒に渡せるようにするのは今の仕様じゃ無理か
concat(...items: T or Array<T>)
みたいなややこしいもの実装するくらいならコード見直すなりキャストするなりした方がいいな
0513デフォルトの名無しさん2014/04/10(木) 13:20:53.14ID:WQWEMg7U
アクセサのget と setあるじゃん
これらのアクセサでインターフェイス作りたいときはどう書けばいいのでしょうか?
詳しい方教えてださい

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

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

interface Person {
name: string;
}

class MyPerson implements Person {
public get name(): string { ... }
public set name(value: string) { ... }
}
0516デフォルトの名無しさん2014/05/07(水) 10:07:21.61ID:ev+R2l3t
yieldやawaitが早くほしい
0517デフォルトの名無しさん2014/06/03(火) 09:06:12.26ID:L+zlmaIc
Swiftスレ
http://peace.2ch.net/test/read.cgi/tech/1401736341/
0518デフォルトの名無しさん2014/06/04(水) 01:59:15.73ID:OMtzL7Lr
promiseほしい
0519デフォルトの名無しさん2014/06/04(水) 11:05:05.84ID:YxCZZ9Nt
アナフォリックマクロがほしい
0520デフォルトの名無しさん2014/06/04(水) 11:14:16.41ID:ZA5b4cSB
穴堀っく?
0521デフォルトの名無しさん2014/06/06(金) 13:05:08.37ID:uFCjSph2
TypeScriptあるある
.tsをいじってると思ったら.jsの方を直していた…

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

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

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

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

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

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

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

なんで interface と var の二段構えにするのか分からん…
理由を教えてください
0538デフォルトの名無しさん2014/06/13(金) 19:38:00.73ID:+mlgEAv7
最初は継承(extends)を抑制するくらいかなぁと思ったけど
その例に出てるように、体面上prototypeを通してインターフェースのメンバーにアクセスできるのは大きいんじゃないかね
0539デフォルトの名無しさん2014/06/13(金) 19:58:32.75ID:+mlgEAv7
何か足りてない気がしたので補足すると
class Hogeだった場合、Hoge.prototypeはany型なので
0540デフォルトの名無しさん2014/06/15(日) 20:17:48.14ID:YQKlNxZl
前は依存関係で難しかった全ソースを1ファイルから参照してコンパイルが
参照する順番とか気にせずできるようになってるな
project.tsにプロジェクト内のソースと.d.tsの参照をまとめて突っ込んで
これにtypescript-toolsのTSS使うとお気に入りのエディタだけで完結できて捗るな
05415372014/06/16(月) 13:59:55.61ID: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が唯一と言える
ここまでやらないと代替言語とは言えない
0542デフォルトの名無しさん2014/06/16(月) 18:09:30.92ID:piNVkFe1
動的型向けの妙な使い方ではmoduleを使ったマージなんてのもある
function Foo() {}
module Foo { export var Bar = 0; }
関数とか既に存在するオブジェクトにプロパティを持たせるのに使える。しかもコード補完も有効
0543デフォルトの名無しさん2014/06/16(月) 19:08:40.95ID:MMwlea4w
declare class IGreeter {
static greeting: number;
}
class Greeter implements IGreeter {
static greeting: string;
}

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

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

class Greeter implements IGreeter {

class Greeter extends IGreeter {
にすると正しくエラーにはなる
implementsはインターフェースとして扱うからか?
0545デフォルトの名無しさん2014/06/16(月) 20:40:26.94ID:MMwlea4w
>>544
thx
インターフェースはstatic書けないのにアンビエントは書けるから使えるかと思ったら書けるだけで無視されるのか
間違いの元だから構文でエラー出してほしかった
0546デフォルトの名無しさん2014/06/16(月) 22:25:57.48ID:w9HZwqDq
>>544
現状の declare class + implements でエラーにならないのは何か理由があるのかね
単なる仕様の抜けな気もするけど
0547デフォルトの名無しさん2014/06/17(火) 23:13:47.25ID:fMVcjia3
operator overload が実装されて欲しかったけど、公式のフォーラム見たかぎりだと完全に無理っぽい
やっぱりJavaScriptとの親和性を考えると難しいかな
0548デフォルトの名無しさん2014/06/18(水) 05:47:48.77ID: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);
0549デフォルトの名無しさん2014/06/18(水) 09:01:25.13ID:yQv7xPxo
ああ、<HTMLElement>event.targetでアサーションかますのか
0550デフォルトの名無しさん2014/06/18(水) 11:05:03.22ID:khpGyYRv
>>549
その辺の元からあるやつは型調べないと全然わからんわ
0551デフォルトの名無しさん2014/06/18(水) 14:14:23.32ID:Wy6/uQSJ
>>550
W3CのDOMの仕様に書いてあるIDLとか見るとちゃんと忠実に型付けされてるが、
そもそもの仕様がスゲー複雑という問題が…

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

tsc --out out.js --watch hoge1.ts hoge2.ts .... hoge30.ts
って全部渡してる?
0595デフォルトの名無しさん2014/07/10(木) 21:49:42.60ID: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.
0596デフォルトの名無しさん2014/07/10(木) 22:31:07.60ID:0b9K59t8
テスト鯖のLinuxにインストールしたら--watchあるので窓環かな、窓だとinotify使えないし
grunt-typescriptのwatchはtscに流してるのかと思ってたけどソース見たら独自実装ぽいので
ソース指定無視するのはtypescriptじゃなくてgrunt-typescriptの問題ぽいです
お騒がせしました
0597デフォルトの名無しさん2014/07/10(木) 23:06:09.73ID:0V6jAuTd
>>596
Windows7だが普通に--watch使えてるよ
しかし>>595を見るとなぜか--watchがないw 何でだ?バージョンも一緒なのに
多分typescriptを単体で入れてないで、何らかの依存関係で入った独自版の気がする

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

>>702
>Webstormで編集したhtml等の静的ファイルをホストしてるが問題ない(最新のが来ないとか)です
自分も同じ現象で困っているんです。visual studioで修正した内容が、tomcatに反映されないとちょっと厳しい
0705デフォルトの名無しさん2014/10/13(月) 22:38:39.06ID:JXCdJMyl
TypEcsとかeclipse-typescript試してる人はいないの?
0706デフォルトの名無しさん2014/10/13(月) 22:44:32.69ID:JXCdJMyl
あと更新の検出だけならEclipseのワークスペース同期を自動にしてみるとか
0707デフォルトの名無しさん2014/10/13(月) 23:31:47.67ID:OYwvx2Jj
>>705
どっちもプラグイン無しよりはかなりマシ
VSと比べると微妙だがサーバーサイド開発で既にEclipse使ってるならまぁありだと思う
0708デフォルトの名無しさん2014/10/15(水) 16:07:01.95ID: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で作ったライブラリ
を使う時に困ってた人はいるかもね
0709デフォルトの名無しさん2014/10/15(水) 18:12:24.23ID:5vlaZL8F
配列というより構造体やね
0710デフォルトの名無しさん2014/10/15(水) 23:29:49.28ID:MQ8XgHJ4
TypeScriptというかnodejsのharmony仕様を調べ始めたところだが、
ES6の実装状況がまちまちで四苦八苦している。

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

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


たとえばAngularJSとか。
0714デフォルトの名無しさん2014/10/17(金) 06:27:22.31ID:GxuVIfVs
基本的にスーパーセットなわけで、こんがらがるかなぁ
運用ルール次第なんじゃない
0715デフォルトの名無しさん2014/10/17(金) 07:33:34.82ID:QP1DIUi6
javascript -> TypeScript の流れって
perl5 -> perl6 並に糞
0716デフォルトの名無しさん2014/10/17(金) 08:43:21.09ID:2VE/je/5
>>715
どう糞なのかくやしく
0717デフォルトの名無しさん2014/10/17(金) 08:53:11.02ID:QO9aEKfQ
モジュールやクラスのエミッタの拡張ポイント欲しいって話は出てるからMSの人々も現状で過不足無いとは思ってなさそう
0718デフォルトの名無しさん2014/10/17(金) 09:39:51.56ID:miHSXPj2
多分、TypeScriptもPerlも理解出来てないと思う
0719デフォルトの名無しさん2014/10/17(金) 11:19:10.66ID:HZvg3la9
朝日新聞みたいに言ったもん勝ちみたいな風潮はいつから始まったんだろう
0720デフォルトの名無しさん2014/10/17(金) 11:25:11.18ID:eItDrHFZ
1.1でもう既に十分な機能ではあるけど、唯一改善して欲しいのが
出力される.jsの空行が全部削除されてる事だ
これは頂けない
多分難しいのかもしれんが、.tsに書いた通りに空行を残してもらえればもう言う事ない
0721デフォルトの名無しさん2014/10/17(金) 11:31:51.62ID:eItDrHFZ
あと、if elseも
1.0
if (...) {
} else {
}
だったのが、
1.1
if (...) {
}
else {
}
になったのもちょっと嫌だな…気にし過ぎかな…
0722デフォルトの名無しさん2014/10/17(金) 11:53:06.81ID:HZvg3la9
それは嫌
0723デフォルトの名無しさん2014/10/18(土) 11:47:14.42ID:wr0SP5In
TypeScripとJavaで開発するとき、EcipseとVisualStudioの連携が面倒だなーって思ってたけど
xmlhttprequest使えば、簡単に連携出来そうだねー
0724デフォルトの名無しさん2014/10/18(土) 15:18:04.19ID:bO6OiW4i
>>723
ちょっと言ってる意味が分からん…
Ecipse⇔VisualStudioはツール間の連携
XMLHttpRequestはサーバーとhttpで通信するJavaScript用APIだぞ
0725デフォルトの名無しさん2014/10/18(土) 15:57:55.44ID: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をデバッグできるなーと思いました。
0726デフォルトの名無しさん2014/10/18(土) 18:38:50.07ID:FkSTwmVr
「Eclipse と Visual Studioの連携は難しい」っつってもそもそもがサーバーもクライアントもJavaScriptでやるんじゃなければIDE間の連携要らなくない?
localhostで動かして必要ならFiddlerでホスト書き換えればCrossDomainすら要らないと思う
0727デフォルトの名無しさん2014/10/18(土) 23:39:37.50ID:wr0SP5In
>> 726
勉強なりました。
Fiddlerで静的コンテンツをtomcatから配信しているように見せることってできるんですか?

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

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

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

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

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

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

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

って書けば今だってパッと見型が分からないコードは書けるわけで、それより限定してる分マシだろ
0749デフォルトの名無しさん2014/10/20(月) 21:14:20.19ID:gc0RlShe
>>748
自分一人でやるか品質が保証されている分にはそうだろうがね
大規模開発のための言語だろこれは
オーバーロードにしても型と型に応じた処理の分離していないバグの入りやすいtsのオーバーロードを
ほかの言語より使いやすくお膳立てするなんてバグを奨励しているようなものだ
そういうのは全部jsに捨ててくるべきものだ
0750デフォルトの名無しさん2014/10/20(月) 22:46:12.06ID:KfYW9NVG
>>749
もしかしたら勘違いしてんのかもしれないけど、
interface Settings {
foo: number|string;
}
fooは実行時にnumberとstringにコロコロ切り替わるわけじゃないぞ?
コンパイル時にどっちかの型に決まるだけだ
実行時には型は一貫してんだからバグりやすくはならないはず
0751デフォルトの名無しさん2014/10/20(月) 23:04:45.84ID: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
0752デフォルトの名無しさん2014/10/21(火) 07:31:03.67ID:2BVwyhYl
いわゆる直和型みたいなものという理解は正しい?
0753デフォルトの名無しさん2014/10/21(火) 11:58:05.53ID:hiB0/bSQ
>>741
C++でいうところの特殊化ってやつだね。
0754デフォルトの名無しさん2014/10/21(火) 12:00:56.50ID:UGhNhSWT
>>752
違う。直和型オブジェクトは存在しない。型指定子に過ぎない。
0755デフォルトの名無しさん2014/10/21(火) 13:37:07.16ID: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();
}
0756デフォルトの名無しさん2014/10/22(水) 17:02:12.59ID:0wIIsT5J
>>755
何となく理解出来たがType Guardsは、typeofが書かれていたら型が確定してるからOKっていう
面白い仕様なんだな

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

仕様書を見てちゃんと把握したいな
0757デフォルトの名無しさん2014/10/23(木) 12:31:08.87ID:4GmocH82
Common Lispにもこういうのあるでしょ。
動的型付けの言語だと、こういう型の限定の仕方の方が実行時動的型と整合性がいい。
0758デフォルトの名無しさん2014/10/24(金) 12:59:18.04ID: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の通りだね
0759デフォルトの名無しさん2014/10/24(金) 13:19:39.54ID:eccWVdvb
ES6やES7のことを考えれば、複数の型システムのテストベッドがあるのは非常に良いこと。
0760デフォルトの名無しさん2014/10/24(金) 19:04:40.84ID:PFUmR1v0
VisualStudioでデバッグしている時に、ステップインでjsまでデバッグしちゃうけど
これどうにかならんの?

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

まだES6をすぐ有効には出来ないだろうが先に実装されてるのはありがたい
0769デフォルトの名無しさん2014/11/05(水) 21:29:14.46ID:vKRb2bS6
>>765
Windows Vistaのステップ数は5000万行らしいねー
0770デフォルトの名無しさん2014/11/06(木) 10:00:19.95ID: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(){
}
}
0771デフォルトの名無しさん2014/11/06(木) 10:29:35.81ID:37FIwPnT
>>770
interfaceにprivateは書けないよ
他の言語でも同じだと思うけど
0772デフォルトの名無しさん2014/11/06(木) 11:01:36.85ID:Yj3faNE/
そうだったんですか
classのほうにだけprivateを書いて
interface ClockInterface {
currentTime: Date;
getDate(): void;
}

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

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

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


classを使う場合はこう書く

class School {
  name = "takeshita";
  age = 20;
}
var user = new School();
0777デフォルトの名無しさん2014/11/06(木) 22:49:47.09ID: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);
0778デフォルトの名無しさん2014/11/06(木) 22:55:39.06ID:ZFIfqC6A
SchoolをStudentに変えるべき
その教材は捨ててしまえ
0779デフォルトの名無しさん2014/11/06(木) 23:17:19.32ID: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を使うとこの場合は別モノになるな
0780デフォルトの名無しさん2014/11/07(金) 04:49:14.89ID:MQmGrs9M
scoolkiller思い出した
0781デフォルトの名無しさん2014/11/08(土) 17:11:18.95ID:ynvOK8IX
コンパイルした時に複数のtsを、1つのjsにまとめる機能って無いの?
共通部分は1つのjsにまとめて、それを参照する形で業務ロジックを作りたい

ちなみに、VisualStudio使ってます。
0782デフォルトの名無しさん2014/11/08(土) 18:14:30.07ID:ThoMLEK3
プロジェクトのプロパティを開いて
「出力」−「JavaScript出力をファイルに結合する」をON
ファイル名を入れてビルド
0783デフォルトの名無しさん2014/11/08(土) 18:57:04.73ID:ynvOK8IX
>>782
まじかー
サンクス
0784デフォルトの名無しさん2014/11/13(木) 12:56:42.64ID:HZsyUBKC
1.3キタ━━━━━━(゚∀゚)━━━━━━ !!!!!
Announcing TypeScript 1.3
http://blogs.msdn.com/b/typescript/archive/2014/11/12/announcing-typescript-1-3.aspx
0785デフォルトの名無しさん2014/11/13(木) 13:12:36.10ID:TfaWOQiO
ついにねんがんのぷろてくてっどが!
0786デフォルトの名無しさん2014/11/13(木) 13:35:56.65ID:HZsyUBKC
しかし出力された.jsは相変わらず空行全削除だな…
読み易いJavaScriptを出力するのが目的なんだから何とかして欲しいもんだ
0787デフォルトの名無しさん2014/11/13(木) 14:43:37.81ID: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
0788デフォルトの名無しさん2014/11/13(木) 20:06:46.36ID:zuUAHoZq
>>758
angular.jsのためにアノテーション加えたかったんだろう
0789デフォルトの名無しさん2014/11/13(木) 22:51:40.48ID:c+BKp7IS
TypeScript 1.3.0 変更点
ttp://qiita.com/vvakame/items/0b5060de5566f210479b
0790デフォルトの名無しさん2014/11/13(木) 23:38:50.77ID:NtTGAkQ7
>>789
> しかしまぁご覧のとおりanyを使うと普通にアクセスできてしまうので、僕個人の感想としてはあんまり意味がないですね。
> privateも使わないで書こうマンだよ〜。
とても本を書いてるとは思えないド素人発言だな…そもそもprotecedが無いのは欠陥だったとも言える

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

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

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

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

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

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

http://qiita.com/tags/flow

facebook版TypeScriptであるflowの動向も
0809デフォルトの名無しさん2014/11/20(木) 08:56:15.01ID:q0sk1zSo
また無駄な再発明するのか
0810デフォルトの名無しさん2014/11/20(木) 11:45:09.64ID:NXtQAofb
TypeScriptで最も価値があるのはlib.d.tsだ (最近は分割されてlib.*.d.tsだけど)
ブラウザ内蔵オブジェクトに正しく型を付けているのはTypeScriptだけ
これを真似しようとしたり使ったりしようとすれば単にもう一つTypeScriptが出来るだけだ
0811デフォルトの名無しさん2014/11/20(木) 12:13:33.65ID:EmAWw9wC
angular.jsいいね
0812デフォルトの名無しさん2014/11/20(木) 13:21:36.11ID: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 は数値であることが確定かつ保障された状態なので処理が楽みたく
0813デフォルトの名無しさん2014/11/20(木) 13:53:58.66ID:NXtQAofb
>>812
それはTuple型だ
x: Array<string|number>のstring|numberがUnion typesといえる
普通やらないし、JavaScriptエンジンは配列に別の型を入れると遅くなる問題がある
0814デフォルトの名無しさん2014/11/20(木) 15:57:58.68ID:zD0t+gDT
ヘジはLightweightな言語に細かい便利機能詰め込むんじゃねーよ
ルーズだけどシンプルだからスクリプト使ってるのに
複雑なことしたいならstatic strong typingなC#でやるっての
0815デフォルトの名無しさん2014/11/20(木) 16:39:09.62ID:NXtQAofb
>>814
細かい便利機能じゃないよ
既存のJavaScriptライブラリとかに配列内に別の型の代入する事を要求するものがあった場合に
今までだとanyにするしかなかったのをちゃんとタイプセーフに出来るようにしただけ

Union Typesのおかげでanyを全く使わなくて済むようになるから重要な機能だ
TypeScriptオンリーの場合は使わない機能とも言えるがJavaScriptとの連携を考えれば必要だな
C#もdynamicが導入されて動的言語になってるからTypeScriptと同じ立場と言える
0816デフォルトの名無しさん2014/11/20(木) 17:39:51.04ID:vfYJcr11
もともとanyで出来たんだ
タイプセーフでコンパイル時に弾くんだね
0817デフォルトの名無しさん2014/11/20(木) 20:11:26.43ID: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]になってしまうってことか
0818デフォルトの名無しさん2014/11/20(木) 20:28:33.85ID:oqTW0z+N
javaをやっている感じで、ファイルを分割しているんだけどさー
やっぱり、ファイルを分割するとパフォーマンス落ちる?
0819デフォルトの名無しさん2014/11/20(木) 20:47:36.66ID:NXtQAofb
パフォーマンスが実行速度の事なら変わらないよ
最初の読み込み速度は多少遅くなるだろうね
0820デフォルトの名無しさん2014/11/20(木) 20:55:25.29ID:oqTW0z+N
>最初の読み込み速度は多少遅くなるだろうね
これって、jsの読み込み速度?
0821デフォルトの名無しさん2014/11/20(木) 21:04:41.17ID:NXtQAofb
>>820
そうそう
ただ、1ファイルにまとめてjsを書き出せるから最後にまとめれば問題無いんだけど
0822デフォルトの名無しさん2014/11/20(木) 21:06:45.51ID:hXnIjUet
出力ファイルは結合すればいいんだけど分けすぎると依存関係が理解不能になって死ぬよ
0823デフォルトの名無しさん2014/11/20(木) 21:50:32.97ID:Bl9pqrtY
ちょっと体験してみたいけど、どうすれば良い?
0824デフォルトの名無しさん2014/11/20(木) 22:17:25.65ID:NnpwxPiE
Playgroundで試せ
http://www.typescriptlang.org/Playground/
0825デフォルトの名無しさん2014/11/20(木) 22:43:54.47ID:1ob9Wc7O
>>822
それは単に設計する時の問題だろw
TypeScriptだと理解不能になりやすいとかあるのか?
0826デフォルトの名無しさん2014/11/20(木) 23:01:59.76ID:hXnIjUet
ファイル読み込み順間違えると落ちたり、相互参照で動かせないコードが書けたりする程度
0827デフォルトの名無しさん2014/11/20(木) 23:09:39.63ID:1ob9Wc7O
>>826
ファイル読み込み順間違えるとエラーになるのは確かにあるな
コンパイル言語ではあるが実行はスクリプトで頭からだから、アレ?と思うことはある
ただ、相互参照で動かせないコードが書けたりするのは、どの言語でも有り得るぞ
0828デフォルトの名無しさん2014/11/20(木) 23:14:30.76ID:1ob9Wc7O
>>826
つうか本質的には両方同じ事を言ってるな…
ファイル読み込み順問題で分割せざるを得ない事はあるか
0829デフォルトの名無しさん2014/11/20(木) 23:55:23.81ID:/mtnwqnI
ソース同じなのに依存関係壊れてるファイルを出力することがたまにあるのが困る
ウォッチでなしに
0830デフォルトの名無しさん2014/11/23(日) 02:33:50.71ID: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
0831デフォルトの名無しさん2014/11/23(日) 02:44:46.80ID:Hrwo/3LP
スレチ
面倒
3行
0832デフォルトの名無しさん2014/11/23(日) 03:24:43.08ID:Hrwo/3LP
最後だけ読んだけどES6先行実装したところでどうせ普及するまでにはTypeScriptも対応するのだからアドバンテージではない
それより仕様変更の追従で互換性が死んだり冗長化するのが不安
まずVS相当のIDEだせ話はそれからだ
0833デフォルトの名無しさん2014/11/24(月) 08:03:56.66ID:JmS/vGuj
>>5
VSの2013 Communityがリリースされた今、このレス見ると、微笑ましく
なるね。MSがサーバーサイドへ収益源をシフトしようとしてる中では、Eclipse
やXcodeみたいなものに、プラグインじゃないにせよ、技術提供することは容易
に考えられる。
0834デフォルトの名無しさん2014/11/24(月) 08:04:56.38ID:Fx9sxyxG
え、開発環境としてのWindowsを売ろうとしてるんでしょ?
0835デフォルトの名無しさん2014/11/24(月) 11:55:47.12ID:F6ixuxuV
実際にはlanguage serviceとかいう入力補助や型ヒント等の開発補助ツールの為の機能は既に提供されてるよね?
まぁ俺IDEの中の人じゃないし知らんけど。
0836デフォルトの名無しさん2014/11/24(月) 12:40:57.97ID:JyotAVq+
>>830
情報ありがとう
TypeScript はもう古いんだね
0837デフォルトの名無しさん2014/11/24(月) 13:05:56.96ID:xcmrTXbp
>>836
下記にくさだとか、色々な大規模開発上の問題点は、フレームワークが
解決してくれてるしな。HTML5などなど色々と登場してる中では、昔のよ
うなJavaScriptではない。
0838デフォルトの名無しさん2014/11/24(月) 18:33:13.43ID:KXz7w2LU
フレームワークすげぇ
0839デフォルトの名無しさん2014/11/24(月) 20:43:15.12ID:p9lJgEwd
>>833の書き込み見て、このスレが2年前からあることに驚いてしまった
そして安定の>>2で笑ってしまった
0840デフォルトの名無しさん2014/11/24(月) 21:01:35.12ID:wCkEdUJA
>>830みたいなWebの連中の、品質や互換性を軽視したいい加減な仕事のやり方は言語作りにはそぐわない
実際、Web初の言語で一番成功したのがCoffee(笑)だもんな
0841デフォルトの名無しさん2014/11/24(月) 21:03:13.54ID:98ZWpNI0
初?発?
0842デフォルトの名無しさん2014/11/24(月) 23:53:36.15ID:2q8CWjRy
>>830は俺だが、TypeScript類似言語の動向や差異を日本語で書いてあるものを
貼っておけば分かり易いからで、叩く意図はない

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

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

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

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

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

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

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

これを機に鳴かず飛ばずな.NET Coreの状況を改善しようとしてる
0854デフォルトの名無しさん2014/11/27(木) 17:50:38.23ID:b1d08Po8
monoの立場が微妙になってきたがそれはそれで存続するんだろうな
0855デフォルトの名無しさん2014/11/28(金) 14:32:07.52ID:jIf3qw+l
結局monoにはならなかったか…
0856デフォルトの名無しさん2014/11/29(土) 19:17:09.34ID:1Jq357Cf
xamarinでこれから儲けたろ!って思ってた所に
本家から目をつけられた感じだなw
0857デフォルトの名無しさん2014/11/29(土) 21:03:45.01ID:1L1G4cU3
xamarinはmono自体を売るのが商売じゃないから、正直たいした影響は無い気がする
顧客としてはC#でAndroidアプリを作ったり出来れば何でもいいんだろうし
0858デフォルトの名無しさん2014/11/30(日) 15:25:03.75ID:DANrX/9U
現在さっぱり金になってない.net/mono on Unixサーバーの法人向け事業を
MSの支援を受けながら本格的にやれるんだから、xamarinにとって悪い話ではないだろ
うまくいけばXamarin studioなんかよりよっぽど安定して稼げる
0859デフォルトの名無しさん2014/12/01(月) 21:31:34.81ID: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
0860デフォルトの名無しさん2014/12/01(月) 23:24:05.53ID:8qnlnKRu
>>859
> ECMAScript 6 compatibility table
IE(TP)のES6の準拠度がはんぱねー
VS+TypeScript+IE(TP)で最強のアプリ開発環境になりそうな悪寒
0861デフォルトの名無しさん2014/12/02(火) 08:23:35.83ID:m/U+kAA0
>>858
いや、そうはならないと思うよ。

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

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

もともと、Xamarinに高い金払って開発するような価値も余地もないよ。
0862デフォルトの名無しさん2014/12/06(土) 14:26:56.42ID:CZ530wjJ
>>858
いまのMSはクラウドサービス押してるのもあり、
サーバとクライアントは、Adobeの動画配信ビジネスみたいにシフトして
開発環境はVSが売りだと分かってるらしいが、ここは展開の実現性も必要性もあまりなさそう。
OSコンテナ技術やライセンスフィーの問題に対応できれば、1000台を10分で投入するような効率優先のSaaSやサービス展開に対応出来てサーバ側の展開は必要なくなると思うので、どっちが先になるかだな。
0863デフォルトの名無しさん2014/12/06(土) 17:51:54.68ID:XSJW8j/j
TypeScriptから生成されたjsを動的ロードしている人いる?
国内情報だとrequire.jsの情報とか少なくないか
0864デフォルトの名無しさん2014/12/06(土) 21:00:22.92ID:O2PZNRYp
ちゃんとTypeScriptの流儀にならってinterface経由で依存関係を扱うようにしていれば
動的ロードでも特に問題になるところは無いと思うが
0865デフォルトの名無しさん2014/12/07(日) 03:06:05.87ID: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
0866デフォルトの名無しさん2014/12/23(火) 21:56:13.52ID: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/
0867デフォルトの名無しさん2014/12/25(木) 07:46:53.87ID:qKZrZOHg
TypeScript でも充分とは思えない
0868デフォルトの名無しさん2014/12/25(木) 10:51:21.60ID:GinUhUBw
>>867
例えばどんなところが?
0869デフォルトの名無しさん2014/12/25(木) 10:56:41.62ID:Y5il8ylR
右クリック&ドラッグでコピー出来なくなってる
0870デフォルトの名無しさん2015/01/07(水) 01:39:23.01ID: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/
0871デフォルトの名無しさん2015/01/07(水) 01:41:42.96ID:IU5WqJH9
開発者の年末年始休暇も終わっただろうし、1.4期待age
0872デフォルトの名無しさん2015/01/07(水) 05:40:10.05ID:XtKeABNm
VSがハングアップするバグはよなおしてけれー
0873デフォルトの名無しさん2015/01/07(水) 10:45:52.70ID:Jbla9vGA
>>871
https://github.com/Microsoft/TypeScript/milestones
ここ見ると88%だから、まだ数ヶ月掛かるような気がする
100%になってもリリースするまで1ヶ月ぐらいは様子見てるし
0874デフォルトの名無しさん2015/01/07(水) 20:17:18.42ID: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のイベントに合わせるかなとも考えたんだ
0875デフォルトの名無しさん2015/01/07(水) 20:52:54.56ID:IU5WqJH9
https://github.com/Microsoft/TypeScript/wiki/Roadmap/4eb16e36ab6b3d9749b10d584c3cca3744cbd66d

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

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

これでES5の範疇に関してはひとまず完成形と言えるだろうね
0881デフォルトの名無しさん2015/01/17(土) 17:19:08.22ID:+rUaI3F0
--target ES6 でコンパイルしても今までのES5の機能を使ってる限りは多分全く同じjsが出るな
classとか=>がjsに残ったりしないから、ちょっとつまらんな
0882デフォルトの名無しさん2015/01/17(土) 20:19:21.49ID:8HCQBOVO
ES6にしたらそのまま型情報だけ消えてそっくりの文法で出力されると思ってたわ。
0883デフォルトの名無しさん2015/01/17(土) 21:46:57.40ID: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の意味がないんですが何故ですか?
0884デフォルトの名無しさん2015/01/17(土) 23:18:08.02ID:8HCQBOVO
privateはコンパイラへの指示であってコンパイル結果であるJavaScriptにprivateなんて概念無いから
0885デフォルトの名無しさん2015/01/18(日) 00:57:20.26ID:zftw74FF
>>882
そうなるのは2.0からなんだろうね
0886デフォルトの名無しさん2015/01/18(日) 14:40:17.66ID:+2hm0AH2
生成されるjsに型やアクセスレベルのチェックを入れるオプションがあってもいいとは思うが
開発スピードを最重視してるみたいだから二重開発みたいになるのは嫌なんだろうな
0887デフォルトの名無しさん2015/01/18(日) 15:29:27.28ID:zftw74FF
>>886
TypeScriptオンリーで開発してる場合は必要無い機能だ
JavaScript用のライブラリ作る時にはあった方が便利かもしれないけど、AtScriptがやろうとしてるな
あと、アクセスレベルのチェックって不可能だと思うけどな
0888デフォルトの名無しさん2015/01/18(日) 16:28:48.61ID:wXCrDAs4
888
0889デフォルトの名無しさん2015/01/18(日) 18:38:15.30ID:5wNJLYNH
>>886
それやるのブラウザのJSエンジン側じゃねという感じ
0890デフォルトの名無しさん2015/01/18(日) 18:57:30.08ID:wXCrDAs4
Chrome専用ですね判ります
0891デフォルトの名無しさん2015/01/18(日) 18:58:19.32ID:5wNJLYNH
Dar...いや、なんでもない
0892デフォルトの名無しさん2015/01/19(月) 02:37:22.73ID: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/
0893デフォルトの名無しさん2015/01/19(月) 02:40:19.04ID:Mo6+4Jio
最近のFlowtype事情とReact+Flowtype連携
https://gist.github.com/teppeis/a48558a71a98d6bee6c9

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

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

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

なんで、TypeScriptのUnion TypesはType Guardsと合わせて使う(想定された使い方)ことで
直和型と言って問題ないと思われる
0898デフォルトの名無しさん2015/01/19(月) 14:13:46.06ID:VmiST7FS
>>892
おまえわかめちゃんだろ
0899デフォルトの名無しさん2015/01/19(月) 19:10:33.84ID: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") { ... }
0900デフォルトの名無しさん2015/01/19(月) 20:19:11.78ID:h8PlB3E6
>>899
なるほど、それは分かりやすい説明だ
直和型とは言えないんだね

ついでに質問だけど、>>897のサイトで
> 直和型は、一般には「左右どちらの値を持っているか知っている」
といきなり説明されているけど、それは直和型の前提なのかい?
0901デフォルトの名無しさん2015/01/20(火) 13:21:40.41ID: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 通り。
直和型の定義を満たすために
「左右どちらの値を持っているか知っている」 必要があると思う
0902デフォルトの名無しさん2015/01/22(木) 12:34:13.09ID:8LHmLWKl
>>901
返答遅くなったけど、分かりやすい説明どうも

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

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

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

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

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

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

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

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

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

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

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

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

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

リファクタリングは既存の動作を変えないことで
機能追加をリファクタリングとは言わない。
0929デフォルトの名無しさん2015/02/03(火) 04:33:38.43ID:Q1ZKEngM
含まれる
0930デフォルトの名無しさん2015/02/16(月) 14:49:32.38ID:8Z58kFg+
node.js 0.12.0 でも tsc は問題無く動いた
そんだけ
0931デフォルトの名無しさん2015/02/25(水) 12:26:19.43ID: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以外でもメンバー補完とかが簡単に実装出来るようになりそう
0932デフォルトの名無しさん2015/02/25(水) 16:59:28.14ID:Eak3EaAA
>>931
これも1.5に追加、と言うより2.0から前倒しされてるよ
>Support for ES6 Modules

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

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

AtScriptとは何だったのか
0947デフォルトの名無しさん2015/03/06(金) 12:34:29.81ID: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に実行時型情報のサポートを追加するように見えるな
追加されると何がどううれしいのかは全然分からん…
0948デフォルトの名無しさん2015/03/06(金) 22:11:26.14ID: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がリリースされて以来、着実にユーザ数が増えているのだ。
0949デフォルトの名無しさん2015/03/07(土) 00:25:38.85ID:uYvMvPbm
しかしTypeScriptをパクった言語って他にも幾つかあった気がする
労せずおいしい所だけを持っていこうとするのは何か解せないものがある

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

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

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

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

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

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

言いたいことは分かるが、いまいち納得いかない…
0961デフォルトの名無しさん2015/03/10(火) 09:34:26.22ID:GWDqHHzE
Angular はワシが育てた(キリっ)
0962デフォルトの名無しさん2015/03/10(火) 13:37:54.32ID:BO1l8SLB
煩わしいし、angularから離れてbackbone.jsに戻ろうかな
0963デフォルトの名無しさん2015/03/16(月) 07:03:49.09ID:dto99C0o
>>960
ずっとただのTypeScriptでやってるけどAtScriptって銘打っちゃおうぜ→MS協力の流れ→あっ、これ?TypeScriptっす
0964デフォルトの名無しさん2015/03/26(木) 19:19:02.15ID:jDcjMJ8v
Dartお亡くなりでこいつの勝利か
0965デフォルトの名無しさん2015/03/26(木) 19:28:19.01ID:twJT7lY0
「Node.js Tools 1.0 for Visual Studio」がリリース、Visual Studio 2013/2012でNode.jsの利用を可能に
http://codezine.jp/article/detail/8598

やべー真の勝者はVSだな…
0966デフォルトの名無しさん2015/03/27(金) 00:23:57.64ID:ywL9wUBF
>>965
使ってみた

ちゅーとりあるのビデオと全然違うやん

VSのエディタはも含めてだけど世の中に普及してるエディタはインデントで構造を指定する言語には弱い
0967デフォルトの名無しさん2015/04/03(金) 02:11:57.29ID:S+bbF527
Announcing TypeScript 1.5 Alpha
http://blogs.msdn.com/b/typescript/archive/2015/03/27/announcing-typescript-1-5-alpha.aspx

公開されたのは今日かな
0968デフォルトの名無しさん2015/04/03(金) 16:31:05.31ID:QkZvOp2c
基本的にES6の追従だけど
> let/const compiling to ES5
が便利過ぎる機能追加、これは大きい

あとはAngluar為に追加したと言っても過言ではないデコレータか
Angluar2.0っていつ使えるようになるか分からんけど
TypeScriptから使うと相当便利につかえるんだろうね
0969デフォルトの名無しさん2015/04/03(金) 16:40:34.51ID:QkZvOp2c
早速試してみた
test.ts
const hoge = 123;
// hoge = 1; // ← コンパイルエラー
console.log(`${hoge}`);

let x = 1;
if (x) {
let x = 0;
console.log(`${x}`); // → 0
}
console.log(`${x}`); // → 1

test.js
var hoge = 123;
// hoge = 1; ← コンパイルエラー
console.log("" + hoge);
var x = 1;
if (x) {
var x_1 = 0;
console.log("" + x_1);
}
console.log("" + x);
いいねー!
0970デフォルトの名無しさん2015/04/03(金) 16:47:50.53ID:QkZvOp2c
>>969は--target ES5でコンパイルしたけど--target ES6だと
.tsと.jsが全く同じになった
しかもclassとか=>もそのまま.jsに出るようになった!
ちなみにclass内は完全に一緒になる訳じゃないな
0971デフォルトの名無しさん2015/04/04(土) 01:09:04.65ID:sX9xZX28
>>970
報告乙
constやっと来たか
出力されるのが同じになるって分かってたけど嬉しい不思議
0972デフォルトの名無しさん2015/04/05(日) 13:10:43.22ID:Cm0h0Zml
おわりの始まり
0973デフォルトの名無しさん2015/04/06(月) 12:45:44.64ID:Au51qe0r
JavaScriptにコンパイル時静的型チェックの仕様が追加されない限り
TypeScriptの必要性は全く変わらない
0974デフォルトの名無しさん2015/04/22(水) 00:27:27.62ID:G0rTsYMJ
Angular2ってものすごく評判悪いね
0975デフォルトの名無しさん2015/04/22(水) 23:26:57.27ID:YLjRa+iq
なぜこのスレで言う
0976デフォルトの名無しさん2015/04/23(木) 16:40:50.59ID:0VCN8LwS
tscでコンパイルしたjavascriptをjscsに通すと警告がたくさん出る。
コードスタイルを設定してコンパイルする方法ないの?
0977デフォルトの名無しさん2015/04/23(木) 23:26:32.55ID:kZZrUiJM
そんな便利なオプションは無い
しかしtscが吐くjsは少なくとも文法的に問題があるわけじゃないから
jscsの設定で警告でないようにすればいいじゃないかと
0978デフォルトの名無しさん2015/04/23(木) 23:42:35.62ID:l/65wJU+
除外ファイルに指定する方が健全ね
0979デフォルトの名無しさん2015/04/24(金) 11:41:06.74ID:GZDzyhlo
Angular2がどんなもんだかは知らんけど、TypeScript+WebComponentなフレームワークは
これから腐るほど出て来るだろうね
しかし最初に始めたものがデファクトスタンダードになる可能性は高いけど
0980デフォルトの名無しさん2015/04/24(金) 13:30:35.67ID:PvI2wnUV
var obj = document.createElement('p');
obj.id = "sample";
obj.contentEditable = true;

contentEditableにtrueを渡すとコンパイルエラーになって
文字列で"true"と渡すとコンパイルが通るんですがなんでですか?
0981デフォルトの名無しさん2015/04/24(金) 14:45:13.20ID:GZDzyhlo
>>980
そういう時はlib.d.tsを見ればいいよ
interface HTMLElement
{
contentEditable: string;
ってなってるよ。基本的にW3Cの仕様をそのまま反映してる↓
http://www.w3.org/TR/html51/editing.html#contenteditable
09829802015/04/24(金) 22:08:45.74ID:fdiFjNHv
lib.d.tsこれみてきました
これがあるとtype迷わなくて済みそうです
0983デフォルトの名無しさん2015/04/25(土) 01:17:58.35ID:3rwZ3iG9
https://github.com/Microsoft/TypeScript/milestones

Suggestionsが消えて、1.5のやり残しは1.5.1に先送り
Build開催までに間に合わせたかったのかな

https://github.com/Microsoft/TypeScript/wiki/Roadmap/bfc82f102a462b485ed5fbebf04a457eb76987a7
>1.5
>Support for Decorator type metadata
>New --rootDir
>New ts.transpile API
>1.6
>Support --module umd
>Support --module system.js
>Support for local types and class expressions
0984デフォルトの名無しさん2015/04/25(土) 13:57:40.14ID:CAD04OOS
スゲー急ピッチだな、1.6でもうES6対応を含めて完成してしまう

それはそうと--watchでずっとコンパイルしてるとメモリリークして
いつの間にか1GB超えててびびった
nodeが悪いのか知らんけど気になるな
0985デフォルトの名無しさん2015/04/26(日) 13:18:36.23ID:2npT22yp
test
レス数が950を超えています。1000を超えると書き込みができなくなります。