TypeScript part2 [転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2015/04/30(木) 18:37:29.98ID:ynMflk1l
http://www.typescriptlang.org/

TypeScript lets you write JavaScript the way you really want to.
TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.
Any browser. Any host. Any OS. Open Source.

前スレ
http://peace.2ch.net/test/read.cgi/tech/1349187527/
2016/08/04(木) 02:41:29.69ID:0QnTEdcF
>>418
じゃあif(!hoge)の判定がTypeScript的には何も問題無いことは分かるよな?
どの辺が釣りなのか教えてくれ
2016/08/04(木) 09:59:24.73ID:aMt1KCpE
strictNullChecksを気持ちよく使いたいなら構造から見直しになるな
{ x?, y? } // 必ずペアで使う
ではなく
{ pt?: { x, y } }
としないと ! を避けられない
2016/08/08(月) 22:15:39.27ID:W4Hzna5O
だれかtypeScriptでバリバリサーバサイドもやってるぜって人いる?
使い勝手を是非聞きたい
2016/08/25(木) 22:38:44.02ID:yGHELMdE
マクロのミスでconst enum同士で除算しちゃってて間違い探しをする羽目になったぜ
ありえない数値になってたのにコンパイラは叱ってくれなかったよ
2016/08/26(金) 07:44:50.99ID:LCNVy+4G
>>424
enum同士の除算結果の型はnumberだから、コンパイラの解釈は妥当だぞ

「単位付き数値」があればエラーにできるケースもあるかもしれない
Nominal typesの一環で良い感じの機能が入らないものか
2016/08/26(金) 10:18:15.73ID:uxIG+t+y
numberからconst enumへ暗黙的な変換が許されるのが問題だと思ったんよ
警告されれば先に気づくことができたから
2016/08/26(金) 15:52:13.72ID:mbeLOtT9
暗黙も何もenumの要素は最初からただのnumberだからな
JavaScriptとの互換性を考えれば妥当な仕様だろう
2016/08/26(金) 16:16:08.43ID:LCNVy+4G
他言語と比べると確かにチェックがガバガバだが
interfaceを明示的にimplementsしなくてもシグニチャだけを見ることと比べると
一貫性はあるとは思う。型システムがStructuralなことの弊害だろう

数値でなくても良いなら enum より String Literal Types を使うべきなんだろうな
2016/08/26(金) 16:48:05.33ID:mbeLOtT9
型システム自体はJavaScript側にあるんだ
TypeScriptがやってる事はJavaScriptのソースに書かれてる型を見えるようにしてるだけとも言える

そもそもJavaScriptが動的型なんだから無理やり静的型にしようとしても微妙なところは出てくるだろうな
2016/09/01(木) 04:24:05.73ID:oFB7MvRf
Announcing TypeScript 2.0 RC
https://blogs.msdn.microsoft.com/typescript/2016/08/30/announcing-typescript-2-0-rc/

>>380に追加
Number, enum, and boolean literal types
https://github.com/Microsoft/TypeScript/pull/9407
2016/09/02(金) 02:34:58.82ID:D4RF+Hn1
switch使うとダサくなるな
match withにして欲しい
2016/09/02(金) 15:48:27.54ID:LgVEFfHs
内部モジュールについて教えてください。
これを使う場合ってconcatで1ファイル化する場合ってことでいいんでしょうか
webpackをつかって1ファイル化する予定なんですがその場合は外部モジュールを使う認識であっていますか?
2016/09/02(金) 17:23:11.44ID:dDo1g1S1
外部モジュールになるファイルは独立してるはず
今はnamespace推奨で内部モジュールって表現はあまり意味を成してない?
ので1ファイルにまとめたら名前空間で仕切られてるだけって考えでいいんじゃないか
2016/09/03(土) 00:54:26.94ID:FrYijLTu
昔からある単なるmoduleはもうobsoleteですぐにnamespaceにリネームすべきだね
いわゆるモジュールはJavaScriptの世界を知らないと理解しがたいものになってるね
2016/09/03(土) 00:56:21.93ID:FrYijLTu
ES6のmuduleが普及すればかなりシンプルになるんだろうけど、まだブラウザがサポートしてない
2016/09/09(金) 21:36:47.25ID:oMlYA35z
letは再入不可にして欲しいなあ
2016/09/09(金) 21:41:01.71ID:0o6Zl0oX
constじゃあかんの?
2016/09/10(土) 07:30:02.50ID:XD8JXdoT
なんか名前が先祖帰りっぽくてなあ
2016/09/11(日) 01:15:44.93ID:PWIs+lC0
>>436は「再入」不可と言ってんだが…
2016/09/11(日) 01:38:43.42ID:m+TGnnw0
リエントラントを意識したことが無かったりすると
再入って言葉を再代入の変わりに使ってもいいじゃん?とか思ってしまうのだろう
2016/09/11(日) 08:21:20.09ID:o8qO+nVm
「リエントラントな変数」はナンセンスだから、ま、多少はね?
2016/09/14(水) 09:26:01.83ID:tSXXNMuv
tsってjsに変換して型情報捨てちゃってるけどバイナリにコンパイルとかサポートしないのかな
WebAssemblyにそのまま使えたら面白いことになりそう
2016/09/14(水) 09:52:25.62ID:EEwsGEAZ
asm.jsは文法だけjsのサブセットで実行モデルは全然違うんでサポートしないっつうかできなかったはずだが、WebAssemblyも同じじゃないの?
2016/09/14(水) 10:28:43.01ID:8JRyg+5x
折角の型情報を活かせるのが構文チェックだけで
高速化には寄与しないってのは勿体ないのは確かだな
2016/09/14(水) 13:51:30.89ID:Adg+xGfe
TypeScriptのビジョン的には、そういうのはESが新バージョンで型アノテーションを導入して
ブラウザによって最適化されるべきということなんじゃない?
ハックで実装するのはTypeScript的じゃないよ
2016/09/14(水) 14:43:49.29ID:UUl7aTux
ES5と同じようにwasm用のサブセット作って段階的にサポートしていけば余裕しょ
2016/09/14(水) 14:58:26.52ID:Adg+xGfe
アセンブリレベルまでコンパイルしようと思えば現在JSに丸投げしてる部分をTSで独自に定義し直す必要があるから、
仕様はサブセットどころか無茶苦茶肥大化するよ
2016/09/14(水) 15:06:48.85ID:eWqPmXTS
どうせJavaやC#がWebAssemblyの出力に対応するだろうし、高速化を期待するならそっちを使うべきだな
2016/09/14(水) 15:12:59.56ID:eWqPmXTS
ただ、Webの世界はAPIが全てJavaScript用に定義されてる訳だから
DOMをいじるとかWeb関連のコードを書こうとしたらJavaScript使うのが一番楽だろう
で、TypeScriptを使えばエラーの少ないコードが書けるよってだけの存在だな
2016/09/21(水) 09:53:22.62ID:ye3OhaXn
netbeansでtsファイルをコンパイルできますか?
2016/09/23(金) 07:28:38.08ID:wUPl9fHa
TypeScript 2.0 正式リリース
https://blogs.msdn.microsoft.com/typescript/2016/09/22/announcing-typescript-2-0/
2016/09/25(日) 21:22:23.16ID:rgw8PMte
Visual Studio2015のTypeScript2.0で
if(1===2){
 ...
}
とすると、
エラー TS2365 演算子 '===' を型 '1' および '2' に適用することはできません。
になるのですが、1と2を比較すると何が悪いのでしょうか?
2016/09/25(日) 22:06:10.66ID:s0l/HB/m
>>452
Tagged Union 由来のエラーのような気がする
ナンセンスなコードだけど、気になるようならエラーレポートしておいで
片方が変数なら問題ないから、普通にコードを書くうちは表面化しない
2016/09/26(月) 03:17:54.07ID:Pt8k1v+W
>>451
Revised 型の国のTypeScript
http://typescript.ninja/typescript-in-definitelyland/

>>430
TypeScript 2.0.3 変更点
http://qiita.com/vvakame/items/826bf193dd301862014f
2016/09/26(月) 12:48:28.20ID:KtFZyGzz
型の国新人研修マニュアルみたいで微妙だった
2016/09/26(月) 14:39:12.43ID:ymOrEJcI
一瞬変な絵が出てブラクラかと思った
http://techbooster.github.io/c90/#typescript
2016/09/26(月) 23:44:06.70ID:9aeHOXYg
>>452
これは興味深い挙動だな
確かにnumberよりも1や2という「型」の方がより特殊化されてるからそっちで比較されちゃったんだろうな
let n: 1 = 1;
if (n === 2) { // 同じエラー
if (n === <number>2) { // OK (もちろんfalseになる)
number型定数のデフォがnumber型だと最初がエラーにならなくなるから難しい問題だな
定数同士の比較の時は型を昇格させるみたいな処理を追加する事になるのかな
2016/09/27(火) 00:14:39.14ID:pG4L5ums
literal types増えたのリリースノートに書いてあるだろ
アナウンスのドキュメントさえ読まないバカが賢ぶってもまるわかりなんだよ
2016/09/27(火) 00:21:02.93ID:DHOAQjGg
変なのが来た
2016/09/27(火) 13:49:47.90ID:cO8I5ivP
Delphiか、、Prismはお試しで終わったっけな
2016/09/27(火) 16:37:55.22ID:LSfhFpLX
espower-typescriptのtypescript2対応版ってないですか?
2016/09/27(火) 18:40:40.20ID:LSfhFpLX
espower-typescriptは自動でproject rootのtsconfig.jsonを参照しているんですが
別ファイルで指定する方法ないでしょうか?
2016/09/27(火) 22:52:10.27ID:K3k5rGhG
>>458
とりあえず>>452のエラーの理由を詳細に説明してくれ
2016/09/30(金) 12:56:49.51ID:Y6l190wq
typescriptでは、
こういう書き方をするようですが、

$(document).ready(() => { ... });

普通の書き方

$(document).ready(function () { ... });

だとダメなのでしょうか?
2016/09/30(金) 13:07:29.24ID:LMNz6D7V
>>464
全く問題ないよ。関数内のthisの指し先の違いにだけ注意がいる
2016/09/30(金) 17:16:18.31ID:ff48EwFg
>>464
typeScriptというよりes2015ですね。
2016/10/05(水) 16:03:45.86ID:ndferu82
jQueryの場合はコールバック内で$(this)とかするけど() => {にするとおかしな事になる(最新だとどうなるかは分からん)
だからjQueryに渡す場合は全部functionにしてる。一貫性がなくなって気持ち悪いけど
2016/10/06(木) 09:02:48.12ID:RX03s8Mg
どちらも関数ではあるけど用途に違いがある以上、元より一貫性を出すことなんてできないでしょ
2016/10/06(木) 15:59:28.90ID:xaiWfMZS
() => {}.bind(this)
2016/10/06(木) 20:20:49.67ID:57+jsWi1
>>468
用途に違いがあるっていうのかな?
functionの挙動に依存しちゃってるから仕方なく使ってるってだけだし、いずれ使う必要は無くなる
2016/10/07(金) 14:51:03.71ID:CXORFQa6
null合体演算子はありますか?
2016/10/08(土) 21:45:49.55ID:2uwi8nYQ
>>471
|| のことかな? falseだとダメだけど
2016/10/20(木) 18:22:59.19ID:UBHF5fAS
typescriptでnode_modules配下のjsコードのimportは可能ですが
自作のjsコードをimportして使いたいのですが可能でしょうか?
具体的に言うとpegjsで作ったparserをtypescriptから使いたいんです。
2016/10/21(金) 09:58:59.53ID:xTFSBjWO
>>473
http://qiita.com/m0a/items/710b8f2b8327868cf049
2016/10/21(金) 10:02:09.42ID:PxEW311p
公開部分だけなら自分で定義ファイル書くのは容易なんじゃないか
もしくはソースをTypeScriptに変換しちゃって-d付きでコンパイル
2016/10/21(金) 12:40:55.64ID:xTFSBjWO
ちょっと考えればtsだってjsに変換してからimportしてるわけだからエラーが出てるようにみえるのは
定義がないだけってわかるだろうに。アホですな。
2016/10/24(月) 23:34:32.07ID:oa9Cbf2z
typescript2.0から.d.tsのデフォルトの検索パスってどうなってるんですかね?
とりあえず自分で定義したのはnode_modules/@types/ に置くことで認識はするんですけど
気持ち悪いのでできればnode_modulesに置きたくないんですよね
2016/10/25(火) 00:14:10.49ID:jY50IjHL
その手の質問はQ&Aサービス使え
2016/10/25(火) 09:54:10.21ID:wi8xj/Ad
>>477
--typeRoots

次からhttps://github.com/Microsoft/TypeScript/wikiを必読としてテンプレに入れようぜ
2016/10/25(火) 15:38:46.44ID:DJibeu24
そう言わずに教えてあげればいいじゃない。どうせ話題もないんだし
2016/10/25(火) 16:45:27.88ID:k0D4gpoS
.net frameworkを使えたりframeworkからコンパイルできれば面白くなりそうなのに
2016/10/25(火) 18:39:55.45ID:UTXk7OSn
たしかに .Net Framework使えたら便利だな

現状ではNode.jsから外部コマンドを叩いて
C#やPowerShellを経由すればできるんじゃね
2016/10/25(火) 20:33:02.00ID:DJibeu24
やっぱりTypeScript使いの人はMicrosoftマンセーの人が多いの?
Mac使いとしては.Netが使えたからどうなんって感じなんだが。
ElectronとかでTypeScriptを使う話をしてるの?
2016/10/25(火) 21:30:56.89ID:VLkXttsf
Windows向けtypescript処理系自体jscriptにコンパイルされて.NETオブジェクト経由でファイルアクセスしてなかったか
2016/10/26(水) 02:40:39.39ID:m/Az1cPZ
>>483
>TypeScript使いの人はMicrosoftマンセーの人が多いの?
特定の企業が好きというよりかは
デファクトスタンダードに乗りたいだけ

WinとMacならWinが(価格性能比的に)使いやすいし
AndroidとiPhoneならAndroidが使いやすいから
(規制が少ないのでとくに開発側としては)
2016/10/26(水) 03:51:14.56ID:CrOhdQQd
typescript使うよりc#で書くほうが楽だよね
2016/10/26(水) 07:48:56.60ID:JLzF9ZGl
>>481
JsProjectWinRTNamespace: https://msdn.microsoft.com/library/mt125480
WinRT (UWP) ならJavaScript側へ公開できるから、それを使うことは可能。
なんにせよ、JavaScriptホスト側を握っていれば (ChakraCore等) 好きにできる。Macでも。
2016/10/26(水) 10:52:47.34ID:jSNrAQ3l
>>484
.netじゃなくてWSHを使ってると思う
tsc.jsの2630行目辺りを読んでみれ
2016/10/26(水) 14:57:17.75ID:L9VZpe/b
tsc.js
https://github.com/Microsoft/TypeScript/blob/master/lib/tsc.js
2016/10/27(木) 00:16:48.17ID:e6l93V+P
>>485
surfaceて高いイメージあるが。
最近はmacも安いし、unix系だからweb系ならmacの方が人気ないか?
そしてtypeScript使うやつはweb系だよね。
2016/10/27(木) 00:28:41.45ID:rC8yedLe
Web系といってもBtoBの比較的かっちりしたものをやってるところはC#やJava使ってWindows上で開発してるところも多いよ
そしてTypeScriptもWeb系の中では比較的そっちの方で好まれてるイメージ
2016/10/27(木) 07:44:18.44ID:aKCl6pYl
Web系じゃないけどソフトのプログラムでJavaScriptが採用されてるから使ってるよ
2016/10/31(月) 11:16:34.62ID:zObjWshz
データと操作を分離する運用

https://goo.gl/L2gey4

上記スタックオーバーフローを見てたんですが
データ構造を扱うときにclassを使わずにすべてjsonにしてしまうって運用は結構を有る話でしょうか?
個人的にはElixirも触っていてデータ構造と処理関数を分けると言うのはアリだとは思うんですが
手元のコードはclass使いまくりでシリアライズが必要になったタイミングで軽く後悔しているところです(^ρ^)
2016/10/31(月) 12:47:50.83ID:UgzYDGEX
そんなに難しい話じゃないような
class Pen {
constructor(private json: PenData) {}
}
でいいじゃん
2016/10/31(月) 12:58:02.65ID:zObjWshz
>>494
それでデシリアライズしたものをシリアライズした時にどうやってPenDataだと特定するの?
2016/10/31(月) 13:30:00.95ID:lUtaNTCT
>>495
シリアライズした構造が固定なら、ルートから順に再構築するのでは?
自分で全てのコンストラクタなりdeserializeメソッドを実装することになる

汎用デシリアライズ関数1個で全てを賄うつもりなら、JSON内にクラス名を保持して
クラス名とJSONからオブジェクトを構築するファクトリを用意するのかな

TypeScriptは実行時型情報が無いから、意外と素直で原始的な方式になると思う
2016/10/31(月) 16:02:19.09ID:zObjWshz
>>496
ですよね。結局こういうめんどくさい実装になるので、だったら
最初からロジック的にデータ構造はすべてjsonにしてしまったほうが楽かなと。
2016/10/31(月) 17:59:38.01ID:lUtaNTCT
>>497
ロジック的にJSON (=循環の無い木構造) にできるなら、それが楽だとは思う
実行時には循環参照が必要になる場合は、保存時にフラットなJSONに変換せざるを得ない
これを汎用化していくと、いわゆるO/Rマッパーになるんだろうな
2016/10/31(月) 20:32:53.85ID:963XFQ2I
ここまでなんのためにシリアライズするか確認するやつなし
2016/10/31(月) 21:41:15.52ID:UgzYDGEX
>>495
そんなもんまともなスキーマ設計してたら一意に決まるだろ
JSは伝統的にAPI指向で、入出力のスキーマだけはきっちり守って
あとは適当に辻褄合わせすればいいという考え方をするもんなんだよ
エンティティを重視しないの
2016/10/31(月) 21:42:12.65ID:zObjWshz
chrome extension作ってまして
background - popup -contentscript間のデータのやり取りがjson経由でしかできなかったので。
2016/11/01(火) 01:26:11.04ID:R4cGftBs
永続化や通信でシリアライズが必要ならまず構成と通信内容を決めて
実装可能であることを確認してから個々の実装に入るべきだった
行きあたりばったりで通信が必要なデータやコマンドが噴出してるだろうから
個別機能に逃げずに先にそこを設計しろ
2016/11/01(火) 03:17:05.88ID:ZbjdSYd3
>>501
普通にobjectを渡せるんじゃないか?
2016/11/09(水) 22:55:56.80ID:w82iFkDp
React Componentを相対パスでimportするのはもう嫌なので、絶対パスでimportしてやる
http://qiita.com/endam/items/49696abedb68878d8b01
コレいいなって思ったんですがTypeScriptで絶対パス指定する方法って標準であったりしないですかね?
2016/11/10(木) 00:57:52.66ID:+mabk82N
TypeScript 2.1 RC: Better Inference, Async Functions, and More
https://blogs.msdn.microsoft.com/typescript/2016/11/08/typescript-2-1-rc-better-inference-async-functions-and-more/
2016/11/10(木) 03:11:40.39ID:XJYCbDSV
モジュール周りはここに書いてあるようだ。
https://www.typescriptlang.org/docs/handbook/module-resolution.html
507デフォルトの名無しさん
垢版 |
2016/11/12(土) 00:03:42.69ID:0EI9e+TE
>>505
TypeScript 2.1.1 変更点
http://qiita.com/vvakame/items/305749d3d6dc6bf877c6
508デフォルトの名無しさん
垢版 |
2016/11/16(水) 13:26:15.81ID:VglaLP8t
bucklescript ω
2016/11/20(日) 01:23:41.33ID:PZEuAd0p
みんなエディタは何使ってるの? VisualStudio以外にいいエディタある?
2016/11/20(日) 08:29:21.81ID:p95gh/Vn
vscode
2016/11/20(日) 09:20:47.29ID:mNZMIvsS
vim
2016/11/20(日) 09:40:13.46ID:0ByPx+DX
Emacs
http://www.typescriptlang.org/
の下の方にEmacsのTypeScript開発環境へのリンクがある。メソッド補完とかリファクタリングとか全部出来る
2016/11/20(日) 16:06:26.39ID:rN9nZaoB
>>509
ALM
http://alm.tools/

好きが高じてエディタまで作ってしまった例
2016/11/20(日) 17:44:23.07ID:Y8tBh63Q
>>513
+1
2016/11/24(木) 16:16:50.02ID:Kbd9UGgc
ALM 使ってみたけど、JIS キーボードで CTRL+¥ が効かなくてツリービューが出ない…
ファイル操作はツリービューでやるんだよね?
2016/11/25(金) 11:07:12.84ID:lg4MxwBZ
>>513
本家のプレイグラウンドも楽しいけど、ちょっと他のライブラリとか合わせられるようなのもほしい。 こういうのと組み合わせて作ってくんないかなー。
2016/12/01(木) 23:31:35.77ID:V3pVktwk
TypeScript Advent Calendar 2016
http://qiita.com/advent-calendar/2016/typescript

(今年も)やっちまった感
2016/12/02(金) 15:42:21.41ID:ocojT6FV
需要なしか
2016/12/02(金) 21:48:15.76ID:i9Hqboy9
12月突入数時間前まで誰も立てなかったしそりゃね
2016/12/03(土) 16:07:27.97ID:iU+ignEA
いつも納期を守らないひとですねわかります
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況