- 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を書き出せるから最後にまとめれば問題無いんだけど
|