13/10/02 06:56:10.44
JSは文字列と数を足した結果は文字列だし
TypeScriptは勝手にキャストしたりしないから
当然gの戻り値は文字列だよ
typeofで調べてみれば?
436:デフォルトの名無しさん
13/10/02 07:11:48.03
function g() : number { return ((x,y) => x + y)(1, "Hello World"); }
の戻り値は "1Hello World"
437:デフォルトの名無しさん
13/10/02 08:23:16.90
問題解決するためのイディオムでも考えたほうが建設的
438:デフォルトの名無しさん
13/10/02 09:03:59.82
解決策:あてにならない形注釈は捨てて
簡潔なコードを書くためにCoffeeScriptを使う
439:デフォルトの名無しさん
13/10/02 17:39:39.35
ただでさえJSerの無能率は高いのに
ドカタが好むエッセンスを振りかけたTypeScriptに
純度の高いバカが集まるのは必然だな
440:デフォルトの名無しさん
13/10/02 18:27:41.90
Coffee読みづらいわ
RubyやScalaを意識してるんだろうけど、あの手の省略大好き言語の中でも
ずば抜けてセンス悪い
441:デフォルトの名無しさん
13/10/02 18:37:36.83
ただでさえ意味不明になりがちなRuby/Scala系のスタイルに
さらにインデント記法を混ぜたのが大失敗
TypeScriptくらいかっちりしたのをそのままインデント記法にするか、
Ruby/Scalaみたいに他省略しまくりでもbegin/endだけは省略しないのが省略の限度だよ
442:デフォルトの名無しさん
13/10/02 21:27:06.14
具体的なコードで欠点を指摘できないと
単なる決めつけで終わってしまうね
443:デフォルトの名無しさん
13/10/02 22:47:27.75
変数の型と違う型の値が
簡単に入ってしまうのは地雷すぎる
これに比べれば大抵のことは許せる
444:434
13/10/03 00:48:08.20
うぐ…stringだた。
function g() : number { return ((x: number, y: any): number => x + y)(1, "2"); }
document.body.innerHTML = g();
で、
greeter.ts(13,1): error TS2011: Cannot convert 'number' to 'string'.
ていうエラーが出るからnumberだと思っとった。(document.body.innerHTML = String(g());はOK)
実際にtsc --noImplicitAnyで静的型チェックが通っても、anyが紛れてると信用ならなくなるって事だな。
こわいこわい。
tsc --noImplicitAnyしたあとanyでgrep(検索)までしないと駄目なのか…
445:デフォルトの名無しさん
13/10/03 00:50:52.12
>>435へのアンカーを忘れた
446:デフォルトの名無しさん
13/10/03 00:57:57.89
んなこと言い出したら既存JSライブラリに対する型宣言なんか全部当てにならんぞ
型が後付けである以上仕方のないことだし、それ故のメリットもある
447:デフォルトの名無しさん
13/10/03 02:33:05.42
ECMAScriptも7になれば静的型チェックは入るんだよな。
ただ、7がリリースされるのは2017とかだろうから、それまでにTypeScriptが駆逐する
可能性はある。IEがネイティブサポートしたら、その可能性は高まる。
448:デフォルトの名無しさん
13/10/03 16:10:49.88
静的型チェックで地雷とか、JavaScriptに何を求めてるんだろ
449:デフォルトの名無しさん
13/10/03 16:23:23.19
太いうんこ出た
きもちECMA
450:デフォルトの名無しさん
13/10/03 21:44:39.23
emscriptenやgwtやjs_of_ocamlのようなのだろ。
451:デフォルトの名無しさん
13/10/03 21:49:10.52
いや全然違うだろ
基本的にJavaScriptを中間コードとして扱わず、ほとんど型チェックを行うだけ
どっちかというとjshintの類だ
452:デフォルトの名無しさん
13/10/10 18:11:36.05
最新Windows用になったIEのネイティブサポートとかもう大局に影響しないだろ
453:デフォルトの名無しさん
13/10/11 00:30:48.83
TypeScriptはザックリ言うと、ES6に静的型チェックと(それ故に必要な)Genericsを追加したものだな。
良い言語だと思うけどね。
454:デフォルトの名無しさん
13/10/11 01:10:35.99
TypeScript、Haxe、Dartの三択だったらどれ?
CoffeeScriptはもうやってるんだけど、新しいのを覚えたい。
455:デフォルトの名無しさん
13/10/11 01:58:34.53
方向性がそれぞれ違うから用途と目的によるとしか。
ざっとググってみてもピンと来ないならTypeScriptでいいんじゃね
456:デフォルトの名無しさん
13/10/11 07:56:33.81
JavaScriptが大嫌いで無茶苦茶に汚してやりたいって人にはDart
監禁されて二人だけの世界で言いなりにされたいって人にはHaxe
どちらにも当てはまらない人にはTypeScript
457:デフォルトの名無しさん
13/10/11 09:53:28.96
JavaScriptは一斉排除だ!って環境ならなんでもいいよね
親和性を取るならTypeScriptは書きやすい
458:デフォルトの名無しさん
13/10/12 09:06:04.50
TypeScriptはVisualStudioで開発したら世界が変わるで。
記述ミスをビルド前に指摘してくれるのはうれしい。
459:デフォルトの名無しさん
13/10/12 09:44:08.17
VisualStudioでプロジェクト作らずに直接TSファイル開くと
依存関係から仮想プロジェクト機能が働くんだけど、これが便利すぎる
460:デフォルトの名無しさん
13/10/15 05:56:27.51
ざけんなよMac無視かよ
461:デフォルトの名無しさん
13/10/15 13:34:25.50
>460
WebStormがあるじゃないか!
462: ◆9Zst2CqO/Y
13/11/15 12:39:15.52
盛り上がってるね。
463:デフォルトの名無しさん
13/11/20 08:12:25.15
JavaScriptが超好き!覇権言語! → JavaScript
なんだかんだでJavaScriptの未来を信じてる。でも型チェックは欲しいお……
Visual Studio大好き! → TypeScript
「JavaScriptで大規模アプリを作るのはジョークだ」(言語設計者談)
つかブラウザ自体単なるコンパイルターゲットのひとつとしか見なしてない
なぜECMAScript4を捨てた。バカじゃねーの
関数型言語大好き! → Haxe
「JavaScriptは問題を抱えている」
JavaScriptなどいずれ滅ぼしてやる → Dart
C++サイコー!実用的な言語! → Emscripten
こんな感じ
TypeScriptかHaxeかというのがよく話題になるが、
ぶっちゃけJavaScriptが好きか嫌いかで選べば間違いないw
あとは我が道を行く闇のC++軍団。
なんだかんだで最終的にガチC++erはウェブでも一定勢力を占めそうだ。
464:デフォルトの名無しさん
13/11/20 08:21:22.89
JSXのことを完全に忘れていたのだがどうなったのだろう
465:デフォルトの名無しさん
13/11/20 21:42:03.04
クラスを定義するために宣言ファイルと定義ファイルを用意するとして
この定義ファイルから同宣言ファイルを参照すると面倒が起きやすい点がなんとかなればな
(一応大体の事は対応できるけども)
466:デフォルトの名無しさん
13/11/20 22:23:09.98
JSXはコンパイル後の出力が汚いだろ
467:デフォルトの名無しさん
13/11/21 01:51:19.26
Emscriptenでどの程度まで出来るのか今一分からんな。
DOMをいじれるのかとか
468:デフォルトの名無しさん
13/11/21 03:16:11.46
TypeScriptの => を使っても、結局イベントハンドラとかのthisのややこしさは
カバーしきれない感じなんだけど、Haxeはもっと上手くごまかしてるの?
469:デフォルトの名無しさん
13/11/21 08:23:31.53
>>467
URLリンク(github.com)
ヘッダー眺めればざっくりとは分かる
470:デフォルトの名無しさん
13/11/21 15:28:25.78
test
471: 忍法帖【Lv=6,xxxP】(2+0:5)
13/11/21 17:19:16.16
test
472:デフォルトの名無しさん
13/11/23 11:38:28.14
>>468
haxeは、クロージャの中でもレシーバー(this)は変更されない。
なので、jQuery.map()等で、クロージャでDOM要素に直接触る場合は、第二引数まで指定して受け取る必要がある。
これを面倒と取るか、シンプルさで混乱を避けているとるかは人それぞれ。
こじんてきにこのきょどうにふまんはないです。
473:デフォルトの名無しさん
13/12/06 23:10:29.06
0.9.5リリース上げ!
動作の安定化とビルド時間の短縮が主な変更点かな。
474:デフォルトの名無しさん
13/12/16 05:34:31.78
定数オーバーロードはstringしか出来ないのか。他のプリミティブも出来たらちょっと楽しそうなのに。
interface I{
f(x:"A"):Alice;//可
f(x:string):Person;
g(x:2):Alice;//不可
g(x:number):Person;
h(x:true):Alice;//不可
h(x:boolean):Person;
}
475:デフォルトの名無しさん
14/01/07 20:26:38.95
今年は1.0くるかね
476:デフォルトの名無しさん
14/01/08 10:26:43.50
試しにTypeScriptでMongoDBのクエリを解釈するサンプルを作ってみた。
URLリンク(github.com)
$where でfunctionを直接クエリとして渡す部分があって
そのcallbackのthisは検索中のdocになるから
JavaScriptやTypeScriptだと問題ないけど
Haxeだと面倒なのかな?(よう知らん)
class QuerySelectorで様々なoperatorをobjectにぶち込んで
operators["$where"](...) などの形で呼び出せるように工夫してみたけど、
staticメソッドだとうまく記述できなかったので通常のメソッドにせざるを得なかった。
お陰でvar self = this; なんて回避コードがときどき必要になるね。
477:デフォルトの名無しさん
14/02/01 09:36:07.23
TypeScriptとES6の関係がわからない。
ES6が普及したら いらない子になっちゃうの?
誰か背中を押してくれ
478:デフォルトの名無しさん
14/02/01 11:17:58.87
ES6なんてまだ現実的な話じゃないけど、そこで悩むくらいならC++かDartあたり選ぶんじゃないか
479:デフォルトの名無しさん
14/02/02 00:52:15.85
URLリンク(typescript.codeplex.com)
URLリンク(teppeis.hatenablog.com)
あまり調べてないがTSレベルの静的型付けはES6になさそうだから、
IDE支援使う分にはTSの方が便利のままなんじゃないかと。
ES6に変換出来るようにするみたいだし、潰しは効くんじゃないか。
480:デフォルトの名無しさん
14/02/02 12:27:45.35
>>479
なるほどー
481:デフォルトの名無しさん
14/02/21 03:07:42.97
なんか NodeBufferの型が存在しないって Windowsでだけワーニングが出るけどこれどうしたらいいん?
Unix上では問題ないみたい。
E:/Home/src/typescript/pmx/node.d.ts (98,9): Expected ';'
E:/Home/src/typescript/pmx/pmx.ts(26,17): The name 'Buffer' does not exist in the current scope
E:/Home/src/typescript/pmx/pmx.ts(35,17): The name 'NodeBuffer' does not exist in the current scope
E:/Home/src/typescript/pmx/pmx.ts(44,17): The name 'NodeBuffer' does not exist in the current scope
E:/Home/src/typescript/pmx/pmx.ts(53,17): The name 'NodeBuffer' does not exist in the current scope
(以下略)
最新のnode.d.tsをカレントに置いて
///<reference path="./node.d.ts" />
してある。
482:デフォルトの名無しさん
14/02/21 22:08:33.50
-dオプションで.d.tsファイルが作れるのはすごく便利なんだけど
参照ファイルも全部記述してくれるせいで.d.ts側には必要ないものまで参照しちゃうな
その.ts内だけで使える/// <reference同等の参照があればいいんだけどな
複数ファイルをまとめてコンパイルした時に他のファイルには影響が出ないようならなお良い
483:481
14/02/22 03:56:10.70
上のエラーだが、とんでもない原因だった。
nodejs本体はときどき入れ替えて最新のを使ってるんだが、
VisualStudio用のnodejsが古いままで、PATHに含まれてたのが原因で誤動作してた。
これは気づかんで……。
484:デフォルトの名無しさん
14/02/22 11:11:21.74
馬鹿には無理
485:デフォルトの名無しさん
14/02/22 18:28:02.50
> Initial commit of TypeScript 1.0 made to codeplex on Feb 20.
> Branched as release-1.0 too. Hoping RTM is next week.
486:デフォルトの名無しさん
14/02/22 19:54:29.18
うおおおはやく発展しろおおおおお
みんな使おうぜええええええ
Coffee構文に対応したコンパイラとか出てこないかな
もはや別言語か
487:デフォルトの名無しさん
14/02/22 22:43:38.36
0.9.5が出てからぱったり更新が止まったな
488:デフォルトの名無しさん
14/02/23 03:41:31.24
0.9.7についてのドキュメントが出てきてる。
489:デフォルトの名無しさん
14/02/26 10:39:45.40
URLリンク(blogs.msdn.com)
TypeScript 1.0 RCが出たよ。
あと、
> We are also now adding TypeScript support into the Visual Studio 2013 product, starting with Update 2.
490:デフォルトの名無しさん
14/02/26 21:09:18.22
おおー きたー
491:デフォルトの名無しさん
14/02/27 00:02:02.15
コンストラクタを見せかけだけでいいから非公開にしたいんだけど
private constructorがコンパイルエラーなのがつらい
面倒になるから出来る限り宣言ソースは直に触れたくないんだよなぁ
492:デフォルトの名無しさん
14/02/27 10:19:24.32
>>491
それは仕様バグなのか何らかのポリシーなのかわからんね。
493:デフォルトの名無しさん
14/02/27 17:33:27.83
JavaScriptの仕様上コンストラクタの隠蔽だけは実現不可能だからだろうね
今のところ非公開要素のコンパイル後のコードはオープンな状態だし、許容してくれるようになればいいんだけど
494:デフォルトの名無しさん
14/02/28 08:51:22.72
>>489
何が変わるんでしょ
なんだかんだ言いながら0.9.5で使えてるわ
495:デフォルトの名無しさん
14/02/28 21:00:55.04
1.0RC関連
URLリンク(blogs.msdn.com)
URLリンク(www.forest.impress.co.jp)
496:デフォルトの名無しさん
14/03/05 23:38:03.33
出力コードの最適化は来ないのかな
言語レベルの定数とかインライン展開でClosureコンパイラで手がまわらない所まで最適化したい
497:デフォルトの名無しさん
14/03/05 23:41:36.34
たぶん出力jsの可読性考えてやってないんじゃない?
jsxとかあるから技術的には可能だと思うし
498:デフォルトの名無しさん
14/03/06 01:46:21.89
>>496
mixinとかってこと?
499:デフォルトの名無しさん
14/03/07 12:42:27.55
Eclipseのプラグイン使ってみたけど
VisualStudioに比べてインテリセンスが死ぬこともないしアウトラインも機能してる
エディターの色分けがまだ変えられないのと、宣言ファイルもソースフォルダの中に無いといけないのがちょっと不便
ファイル関係のことはリンクでカバーできるからまだ良し
500:デフォルトの名無しさん
14/03/08 22:23:28.49
vs2013 + 1.0RCでプロジェクト作っていくつかTSファイル用意するとIntelliSenseもコード補完も効かなくなる
試しにプロジェクト作らずにそれらのTSファイル全部開いて、仮想プロジェクト上でやったら問題無いとかどういうことなん
プロジェクト作っちゃいかんのか
501:デフォルトの名無しさん
14/03/19 08:57:18.73 BRRvET2J
>>500
システム中にnodejsが複数バージョンあると競合することがあるから注意な。
502:デフォルトの名無しさん
14/04/03 12:41:06.17 UmXBHM51
TypeScript 1.0がリリースされた件について
URLリンク(blogs.msdn.com)
503:デフォルトの名無しさん
14/04/03 18:18:25.19 WU6I69c7
うほっ
504:デフォルトの名無しさん
14/04/03 22:10:55.66 PIEAAVmi
>>224
なせま、すばらしい言語は作れるのに、すばらしいOSが作れないのか?
505:デフォルトの名無しさん
14/04/03 22:31:57.98 KPZTHiBY
OSは、したばたらき。えんのしたのちからもち
506:デフォルトの名無しさん
14/04/03 22:52:57.68 8aaFlPVZ
きたかー
507: ◆9Zst2CqO/Y
14/04/03 22:53:53.75 PIEAAVmi
感慨深いです。
508:デフォルトの名無しさん
14/04/06 11:48:59.26 /BRp7uTK
Microsoft、プログラミング言語“TypeScript”を正式リリース
URLリンク(www.forest.impress.co.jp)
509:デフォルトの名無しさん
14/04/06 15:20:08.24 oIpNwxzQ
“TypeScript”は、“JavaScript”へ静的型付け、クラス、モジュールといった機能を追加し、
多くのコンポーネントから成る大規模アプリケーションの開発に耐えうるものへ拡張
510:デフォルトの名無しさん
14/04/06 21:51:24.11 axgq2NYC
TypeScriptでRequirejs使うのって何を意図してんの?
外部モジュールやreference path じゃ不都合の出るケースがあるの?
511:デフォルトの名無しさん
14/04/07 09:23:58.16 cwHyx0pR
全てTypeScriptで成り立つなら使う必要はないかもしれないけど
参照以外はJavaScriptが相手だしな
512:デフォルトの名無しさん
14/04/08 21:37:16.18 LxQtwqh5
Arrayのconcatに値と配列を一緒に渡せるようにするのは今の仕様じゃ無理か
concat(...items: T or Array<T>)
みたいなややこしいもの実装するくらいならコード見直すなりキャストするなりした方がいいな
513:デフォルトの名無しさん
14/04/10 13:20:53.14 WQWEMg7U
アクセサのget と setあるじゃん
これらのアクセサでインターフェイス作りたいときはどう書けばいいのでしょうか?
詳しい方教えてださい
interface Person{
get name() : string;
set name(value : string);
}
のようなかんじなんでしょうか?
514:デフォルトの名無しさん
14/04/10 17:14:13.01 S1KIIA4W
.d.ts吐かせてみたらname: string;になったよ
使う側にしてみれば確かにそうだよな
515:デフォルトの名無しさん
14/05/07 03:11:06.78 Dx88WsDJ
>>513
interface Person {
name: string;
}
class MyPerson implements Person {
public get name(): string { ... }
public set name(value: string) { ... }
}
516:デフォルトの名無しさん
14/05/07 10:07:21.61 ev+R2l3t
yieldやawaitが早くほしい