トップページ > プログラム > 2014年11月20日 > NXtQAofb

書き込み順位&時間帯一覧

10 位/258 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000010100100021006



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
TypeScript part1

書き込みレス一覧

TypeScript part1
810 :デフォルトの名無しさん[sage]:2014/11/20(木) 11:45:09.64 ID:NXtQAofb
TypeScriptで最も価値があるのはlib.d.tsだ (最近は分割されてlib.*.d.tsだけど)
ブラウザ内蔵オブジェクトに正しく型を付けているのはTypeScriptだけ
これを真似しようとしたり使ったりしようとすれば単にもう一つTypeScriptが出来るだけだ
TypeScript part1
813 :デフォルトの名無しさん[sage]:2014/11/20(木) 13:53:58.66 ID:NXtQAofb
>>812
それはTuple型だ
x: Array<string|number>のstring|numberがUnion typesといえる
普通やらないし、JavaScriptエンジンは配列に別の型を入れると遅くなる問題がある
TypeScript part1
815 :デフォルトの名無しさん[sage]:2014/11/20(木) 16:39:09.62 ID:NXtQAofb
>>814
細かい便利機能じゃないよ
既存のJavaScriptライブラリとかに配列内に別の型の代入する事を要求するものがあった場合に
今までだとanyにするしかなかったのをちゃんとタイプセーフに出来るようにしただけ

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

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

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

まとめると…配列に違う型を入れる場合はTuple型を使うか1.4以降のUnion Typesを使って
ちゃんと型定義しないと、[any, any]になってしまうってことか
TypeScript part1
819 :デフォルトの名無しさん[sage]:2014/11/20(木) 20:47:36.66 ID:NXtQAofb
パフォーマンスが実行速度の事なら変わらないよ
最初の読み込み速度は多少遅くなるだろうね
TypeScript part1
821 :デフォルトの名無しさん[sage]:2014/11/20(木) 21:04:41.17 ID:NXtQAofb
>>820
そうそう
ただ、1ファイルにまとめてjsを書き出せるから最後にまとめれば問題無いんだけど


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。