1 名前:デフォルトの名無しさん [2015/04/30(木) 18:37:29.98 ID:ynMflk1l.net] 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. 前スレ peace.2ch.net/test/read.cgi/tech/1349187527/
263 名前:デフォルトの名無しさん mailto:sage [2016/03/09(水) 15:24:10.02 ID:wC8YUP1c.net] >>252 そんな感じでおk。var vs. const や == vs. === 等は ポストプロセスとの相性があるだろうから試してくれ。 useの定義だけ単品のファイルにしてtsconfig.jsonで切り替えると良いかも。 もちろんtscの後に実行する。やり方はビルドツール次第。 デバッグ中はminifyされると面倒だから、リリース時だけ使うといい。
264 名前:デフォルトの名無しさん mailto:sage [2016/03/09(水) 20:12:15.23 ID:YZujmLFz.net] >>253 サンキュウ。 君詳しいな。また教えてくれよ。
265 名前:デフォルトの名無しさん mailto:sage [2016/03/09(水) 20:52:59.74 ID:YZujmLFz.net] 関数のオーバーロードは、 function f(x: number):void; function f(x: string): void; function f(x: any): void { ... } とやるようですが、引数を取らない同名の関数も一緒に定義したいのですが、 function f():void; これを上の定義に追加するとエラーします。 どうすれば良いですか?
266 名前:デフォルトの名無しさん mailto:sage [2016/03/09(水) 21:30:41.53 ID:0Gq8vrNb.net] >>255 それ古い書き方。今時は function f(x?: number | string): void { } と書く
267 名前:デフォルトの名無しさん mailto:sage [2016/03/09(水) 21:32:56.87 ID:0Gq8vrNb.net] 古い書き方でやりたい場合は function f(x?: number):void; function f(x?: string): void; function f(x?: any): void { で出来る
268 名前:デフォルトの名無しさん mailto:sage [2016/03/10(木) 10:54:45.09 ID:z40A+Y3k.net] >>256 >>257 うまくいったわ。ありがとう。 もう一つ教えて。Visual StudioでTypeScript勉強中なのだが、 function f(){ ... return ; ... } とreturn入れると、 Unreachable code detected. のエラーになってしまう。 JavaScriptなら警告だけなのに。 エラーになると実行出来ないのだが、対策ありますか?
269 名前:デフォルトの名無しさん mailto:sage [2016/03/10(木) 11:13:40.34 ID:la5WEUke.net] >>258 --allowUnreachableCode tsconfig.json に書くなら "allowUnreachableCode": true テスト用の一時的変更でない限り、高確率でバグだろうからな
270 名前:デフォルトの名無しさん mailto:sage [2016/03/10(木) 13:16:14.83 ID:z40A+Y3k.net] >>259 レスありがとうございます。 ググったらVS2013ではtsconfig.jsonが使えない? ようなんですが、どうにかして allowUnreachableCode を有効化する方法ありますか?
271 名前:デフォルトの名無しさん mailto:sage [2016/03/14(月) 07:46:17.33 ID:CkOIJo3B.net] JavaScriptの10個くらいのファイルがあり、それをTypeScript化したいのです。 全部のファイルで、同じmodule名で囲ったら、互いに変数や関数を参照出来ると思ったのですが、出来ませんでした。 TypeScriptではC#で言うところのPartial Classみたいにする方法ありますか?
272 名前:デフォルトの名無しさん mailto:sage [2016/03/14(月) 08:26:1
] [ここ壊れてます]
273 名前:9.76 ID:rt0F/u0o.net mailto: >>261 module/namespaceのexportしてないオブジェクトはローカル変数になるからできないね。 他のファイルから使いたいならexportするしかない。外部に公開されちゃうけど。 Partial Classについては、インスタンスなりprototypeなりに関数を代入すれば 似たようなことはできるけど、thisやsuperが扱えないかもしれないな。 インタフェースと declare var の組み合わせは代わりになるだろうか? lib.d.tsを参考に。 [] [ここ壊れてます]
274 名前:デフォルトの名無しさん mailto:sage [2016/03/14(月) 10:05:23.83 ID:WJ0CXY/9.net] JavaScriptの方で擬似的に名前空間化されていないものに 後からnamespaceで囲う必要はないと思う partial classは実行時に実現できたとしてもclass内部の型定義が不完全になるでしょ interfaceはいくつでも同名で定義できるので、全てpartialのようなもの
275 名前:デフォルトの名無しさん mailto:sage [2016/03/14(月) 14:40:23.18 ID:CkOIJo3B.net] >>262 >>263 詳しい説明ありがとうございました。 >JavaScriptの方で擬似的に名前空間化されていないものに >後からnamespaceで囲う必要はないと思う JSのファイルは全部で50個くらいあり、 全部をTS化したいのです。 それで、取りあえず、ある特定の機能に関連している10ファイルを一つにしたくて、 同じmodule名で囲ってみました。 結局、その10ファイルの中でも互いに利用する関数はそれぞれexportして互いに利用し、 一方グローバル変数は一つのTSファイルに集めてそれらを全部exportして10個のTSや、他のJSファイルの中で利用しました。 こういう方針でやるのは、正統的ではないですか? 正しい手法があれば教えて下さい。
276 名前:デフォルトの名無しさん mailto:sage [2016/03/14(月) 15:30:12.67 ID:rt0F/u0o.net] たまたま見つけてタイムリーだったので張っておく。現実装に依存しすぎだとは思うが。 > TypeScriptのクラスをnamespaceで拡張する ttp://qiita.com/ConquestArrow/items/5d885128f896844698dd 複数ファイルから成る出力全体をモジュールで包む機能って無いんだっけ? 単に function() { ... } で囲んでくれるだけで良いんだけれど。 モジュール内部の各所では使うものの、外部からアクセスする必要のないものはローカル化したい。
277 名前:デフォルトの名無しさん mailto:sage [2016/03/14(月) 15:55:47.88 ID:sQIOa7FM.net] 最近はもうnamespaceを使うのはお勧め出来ないな。ES6の機能にないし https://blogs.msdn.microsoft.com/typescript/2016/02/22/announcing-typescript-1-8-2/ この最初に書いてある方法がclassを拡張するには今時の方法なんじゃないかな? ES6のmoduleは1ファイル1モジュールな感じだから全部のファイルを特定のモジュール名で括るという 考えは捨てるべきだと思われる メインのファイルがそのほかを全部importして必要なものをexportするべきだろうね
278 名前:デフォルトの名無しさん mailto:sage [2016/03/14(月) 22:56:12.42 ID:CkOIJo3B.net] >>266 教えて貰ったリンク先見ても良く分かりません。 もう少し分かり易い例はどこかに無いでしょうか?
279 名前:デフォルトの名無しさん mailto:sage [2016/03/15(火) 19:08:51.76 ID:oaSHh/yi.net] >>265 classの中にnamespaceと言うのが 違和感有ります。皆さんはどうですか?
280 名前:デフォルトの名無しさん mailto:sage [2016/03/15(火) 20:09:42.73 ID:9cVBtkdm.net] どうでもいい
281 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 00:53:23.89 ID:dOYh+a0T.net] どうでも良くない
282 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 01:11:40.10 ID:Tb17X3fe.net] typeScriptと相性かいいフレームワークってどんなのがあります。? vue.jsと比べるとreactはかなり良さ気なんですが
283 名前:デフォルトの名無しさん mailto:sage [2016/03/16(水) 13:03:38.46 ID:/Zyxq7hl.net] Angular2かな まだベータ版だけどTypeScriptとの親和性は抜群というかAngular2自体がTypeScriptで作られてる だから*.d.tsが要らない あと最終的にはテンプレート文字列内まで補完が効くようになるらしい
284 名前:デフォルトの名無しさん mailto:sage [2016/03/17(木) 02:25:53.34 ID:ybZd+XDK.net] namespaceとmoduleの違いが分かりません。 ほとんど同じようなものだと思ってもいいですか?
285 名前:デフォルトの名無しさん mailto:sage [2016/03/17(木) 09:53:47.06 ID:U5XyTqUO.net] >>272 googleとmsの共同作品みたいなものですね。 reactと比較してのメリットはフルスタックなところですね
286 名前:[。 facebookもflowとか独自にやらずにtypeScript使ってくれればいいのに。 デメリットは学習コストなんですよねー。正直angular1で挫折したので、、、、 typeScript作のフレームワークとかライブラリって他に何がありますかねー? [] [ここ壊れてます]
287 名前:デフォルトの名無しさん mailto:sage [2016/03/17(木) 10:41:50.84 ID:FCgg2gkL.net] >>273 最初はmoduleしかなかったがTypeScriptのmoduleはJavaScript界隈のモジュールと 違ってnamespaceに近いものだから、後からmoduleの別名でnamespaceが追加された 要するに全く同じもの そしてmoduleはobsoleteな感じだったが、1.8でまた蒸し返された感じだな
288 名前:デフォルトの名無しさん mailto:sage [2016/03/17(木) 10:48:46.56 ID:ybZd+XDK.net] >>275 解説ありがとうございました。スッキリしました。 >1.8でまた蒸し返された感じだな なぜそんなに迷走しているのですか?
289 名前:デフォルトの名無しさん mailto:sage [2016/03/17(木) 11:30:44.99 ID:FCgg2gkL.net] >>276 言い方がまずかったかもしれん…迷走ではない Ambient Modulesと呼ばれている機能が少し拡張されただけだ moduleと1.8で拡張されたdeclare moduleは似てはいるが別モンと考えた方が良かったな ただのmoduleはnamespaceに置き換えた方が誤解が少なくていいと思うが declare moduleはモジュール定義を書くものだから必要なものだった
290 名前:デフォルトの名無しさん mailto:sage [2016/03/17(木) 14:17:48.80 ID:LtlKgYTa.net] playgroundから補完効くの気持ちいいんですけど、 外部ライブラリも取り込めるタイプのやつって無いですかね?
291 名前:デフォルトの名無しさん mailto:sage [2016/03/17(木) 19:50:11.64 ID:ybZd+XDK.net] stackoverflow.com/questions/12802383/extending-array-in-typescript にある例 interface Array<T> { remove(o: T): Array<T>; } Array.prototype.remove = function (o) { // code to remove "o" return this; } のようにして配列に対してremoveというのを追加したいのですが、実際にやると Property 'remove' does not exist on type 'any[]' と出ます。何がおかしいでしょうか? VS2015のTypeScriptです。
292 名前:デフォルトの名無しさん mailto:sage [2016/03/17(木) 21:18:45.36 ID:FCgg2gkL.net] >>279 呼び出してるとこも書かないとそれだけじゃ分からん
293 名前:デフォルトの名無しさん mailto:sage [2016/03/17(木) 23:01:06.58 ID:ybZd+XDK.net] >>280 呼び出す以前に、 Array.prototype.remove = function (o) { ^^^^^ このremoveの部分で上記のエラーメッセージが出ます。 もし理由や対策が分かれば教えて下さい。
294 名前:デフォルトの名無しさん mailto:sage [2016/03/17(木) 23:19:57.85 ID:2Htg2ogu.net] >>281 Playgroundなら動くように見えるが、これでいいのか? tiny.cc/1fw49x tscのバージョンとかビルドオプションにも関係するかもしれない。 型チェックを厳しくすると文句を言われる気がする。 その場合は any にキャストして黙らせるんだろうけど。
295 名前:デフォルトの名無しさん [2016/03/18(金) 01:21:57.61 ID:xSPdqn8L.net] >>282 サンプルありがとうございます。 何故かVSだとエラーするんですよね。
296 名前:デフォルトの名無しさん mailto:sage [2016/03/18(金) 08:30:08.17 ID:lH6dzSdk.net] >>283 君は基本的な姿勢が身についていない ・質問をする場合は、再現可能なコード片を添付せよ ・エラーを特定し、メッセージを加工せずに報告せよ >>279 だけ見ると、使用時にエラーがあるように読めるが >>281 では、実装時にエラーがあるように読める(エラー内容は不明) こんなことでは他人の手を煩わせるだけだ
297 名前:デフォルトの名無しさん mailto:sage [2016/03/18(金) 09:44:04.92 ID:UW/nCw4W.net] >>279 そのインターフェースが他のソースから見える状態じゃないとエラーになるし prototypeへの実装も他のコードよりも先に行われないと実行時エラー そのメッセージだと前者のようだけどな
298 名前:デフォルトの名無しさん mailto:sage [2016/03/18(金) 13:56:17.03 ID:+/FU+lPG.net] >>274 フレームワークと言えばUWP(ユニバーサルWindowsプラットフォーム)もあるな TypeScriptでUWPを作るのは情報が少ないけど同じMSだから手厚いサポートがあるはず
299 名前:デフォルトの名無しさん mailto:sage [2016/03/19(土) 10:14:16.49 ID:iKSB+QiN.net] >>286 JavaScript/HTMLでUWP作れるから問題は無いんじゃない? (UWPが流行るかはともかく) VS2015ではまだプロジェクトテンプレートが無いけど、次期版には追加されるでしょ
300 名前:デフォルトの名無しさん mailto:sage [2016/03/19(土) 12:41:33.04 ID:MNmjmgAA.net] >>287 UWPってqiitaを観た感じはやっていていないけど、 UIをXMLっぽくつくりこめるってやつならReactNativeでいい気がする。
301 名前:デフォルトの名無しさん mailto:sage [2016/03/21(月) 08:15:39.14 ID:O7DG3syI.net] typeScriptでVSCのextension作りたいんですけど 動作の挙動を見るのに既存のextensionをデバッガで動かしています。 でもVSC自体がそのextensionを使っているとバッティングして上手く動かないので 別プロファイルみたいにして動かしたいんです。 でも、そういう起動オプションが見つからなくて困っています。 お助け下さい。
302 名前:デフォルトの名無しさん mailto:sage [2016/03/22(火) 00:21:22.49 ID:uAieVvDE.net] typeScriptのOptional型ってswiftのそれとは全然違うような。 interfaceのメンバにしか?使えないの? 返却値もoptional使いたい
303 名前:デフォルトの名無しさん mailto:sage [2016/03/22(火) 01:42:45.61 ID:gYAdXehO.net] >>290 Swiftとは違うね。単に省略を許すだけ。 TypeScriptではすべての変数がOptional型といえる。 numberを返すと宣言した関数からでも、nullとundefinedは返せてしまう。 ロードマップにある 2.0 Non-nullable types が導入されればマシになるとは思う。
304 名前:デフォルトの名無しさん mailto:sage [2016/03/22(火) 13:37:01.50 ID:r8fC7r2k.net] --strictNullChecks 一発でデフォがNon-nullableになるのは助かる --noImplicitAny --noImplicitReturns と必須オプションがまた増えたな
305 名前:デフォルトの名無しさん mailto:sage [2016/03/22(火) 17:31:59.65 ID:DpQ/EBxZ.net] nullやundefinedを許していない状況で 省略可能引数にnullチェックが必要になるのは少し変な気がするから使わなさそう
306 名前:デフォルトの名無しさん mailto:sage [2016/03/22(火) 17:40:46.01 ID:uAieVvDE.net] >>292 なるほどオプションで有効になる感じですね。 早く試してみたいです。 でも外部ライブラリとの整合性をどうするのか気になります。 swiftだと!がついているImplicitly Unwrapped Optional型とかいうのになって 明確に危険な型だと分かるようにしてますけど、typeScriptも似たようなものになるんでしょうか?
307 名前:デフォルトの名無しさん mailto:sage [2016/03/22(火) 18:03:22.23 ID:gYAdXehO.net] フロー解析をするようになってきているから use(x) はエラーになって if (x != null) { use(x) } はエラーにならない くらいのことをやってくれるはず。Swiftの!型に対応するものは要らない。
308 名前:デフォルトの名無しさん mailto:sage [2016/03/22(火) 21:46:36.58 ID:r8fC7r2k.net] >>293 hoge?: number, じゃなくて hoge = 0, とかにすれば別にnullチェック要らないじゃん で、 interface { hoge?: number と function func(hoge?: number) の 両方共nullableかつ省略可能で hoge: number? だと省略不可でnullableと考えると 一貫していて結構いいじゃない
309 名前:デフォルトの名無しさん mailto:sage [2016/03/22(火) 21:49:41.79 ID:r8fC7r2k.net] let hoge: number?; とletの場合は省略するという考えがないからnumber?でnullableということだな
310 名前:デフォルトの名無しさん mailto:sage [2016/03/22(火) 21:53:50.90 ID:uAieVvDE.net] >>295 ありがとうございますちなみにそのフロー解析はドコまでやってくれるんでしょうか? 例えばtypeScript上で書いたFuncAがあって let a= FuncA() use(a) みたいにFuncAの中で返却値がnullチェックされていれば 上記のようにnullチェック無しで使えるんでしょうか?
311 名前:デフォルトの名無しさん mailto:sage [2016/03/22(火) 22:18:13.97 ID:gYAdXehO.net] >>298 まだリリースはされていないからわからないよ。期待はしているけど。 その例なら function FuncA(): Foo? か : Foo か、関数の返値の宣言を見るのが自然じゃない? FuncAの実装の中まで追うことはないだろうし、するべきではないとさえ思う。 それにしても、省略可能な引数の書き方ってどうなるんだろう? function func(hoge?: number?) ← 厳密だが、?を2個も書くの? function func(hoge?: number) ← 言葉通りだとnon-nullableなのにundefinedになりうる? function func(hoge: number?) ← nullは渡せるが省略できない?
312 名前:デフォルトの名無しさん mailto:sage [2016/03/22(火) 22:43:28.85 ID:BfQhAJB6.net] 皆さんどういう環境でtypescriptやっているのですか? winのvisual studioは少数派かな?
313 名前:デフォルトの名無しさん mailto:sage [2016/03/23(水) 11:41:36.25 ID:oLR8GLsF.net] 引数が省略されたかどうかを調べるための構文がないと不自然だな hoge == nullみたいに使わないはずのキーワードが出てくるのはやっぱり変
314 名前:デフォルトの名無しさん mailto:sage [2016/03/23(水) 13:40:01.83 ID:s9X+rvra.net] >>301 だからNon-nullableがデフォだからって絶対nullが出てこないわけじゃないでしょ DOMだのWebAPIは普通にnullを返すし自前の関数だってnullとかundefinedを返したいことは普通にある それと引き数の省略には func(hoge = -1) とかにすればいいんだよ
315 名前:デフォルトの名無しさん mailto:sage [2016/03/23(水) 14:26:23.62 ID:2mxU+x1U.net] qiita.com/mizchi/items/95ee0101ac22e4b7b662 上記記事でtypeScriptディスられているんですが、 > 最近のTypeScript は動作環境のロックインが多くなりつつあり、またコンパイル後のJSはedgeで動くからこれでいいんだ、というMSの姿勢が若干透けて見えて、ちょっと距離を置きたい気分です。 というのは本当なんでしょうか? 具体的にどういうものがあるのか知りたいです。
316 名前:デフォルトの名無しさん mailto:sage [2016/03/23(水) 15:06:32.16 ID:0dLy2K+b.net] jsあるいはtsに nullとundefinedが有りますが、nullだけで十分だと思うんですが皆さんそう思わない?
317 名前:デフォルトの名無しさん mailto:sage [2016/03/23(水) 16:16:09.46 ID:+D1Yzwu/.net] >>303 っ「要出典」 es5モードならほとんどのブラウザで動くし、es6だとEdgeでさえ動かない。node用。 一時期 async/await を強く推していて、.NET系言語、ES、Python にまで採用させた (良く言えば、開発に協力した)のは、煙たがられていた印象はある。
318 名前:デフォルトの名無しさん mailto:sage [2016/03/23(水) 16:20:06.05 ID:s9X+rvra.net] 機能的にundefinedで名前がnullのが1つあればよかった nullはJavaScriptの癌と言える TypeScriptのコーディングスタイルにもnullは使うなと書いてあるし tslintでも警告を出せるからnullはもう使わないようにすべき
319 名前:デフォルトの名無しさん mailto:sage [2016/03/23(水) 16:42:09.62 ID:+D1Yzwu/.net] >>304 JSだとさらに「undefinedを保持」と「未定義」の区別がある場合も。 「不在」と「不明」は別という考え方もあったが、結局、一般人には使いこなせなかったんだろう。 ちなみにLuaはnilしかなく、nilを代入するとJSのdelete演算子になるんだが、 「保持できるnil」(キーとしては残る)のためにnullが欲しいという話もたまに出る。 何が最良かは難しいところだな。
320 名前:デフォルトの名無しさん mailto:sage [2016/03/23(水) 16:55:04.92 ID:4qmKzsXk.net] return 'undefined';
321 名前:デフォルトの名無しさん mailto:sage [2016/03/23(水) 17:35:37.11 ID:2mxU+x1U.net] interface A { a:string } interface B { b:string } interface C { c:string } type Hoge = A|B|C すいません。上記のような
322 名前:Hoge型があったとして Hoge型をA,B,Cの何れかのinterfaceに合致するかテストする方法ってどうすればいいんでしょうか? できれば各interfaceのメンバに触れずに確認したいのですが、、、、 [] [ここ壊れてます]
323 名前:デフォルトの名無しさん mailto:sage [2016/03/23(水) 23:04:51.01 ID:+D1Yzwu/.net] >>309 無理でしょう。TypeScriptのinterfaceはコンパイル後には何の痕跡も残らない。 実行時にはinterface由来の型情報は使えない。
324 名前:デフォルトの名無しさん mailto:sage [2016/03/24(木) 14:14:40.73 ID:v9bzQn8L.net] TypeScriptはコンパイル時にはinterfaceを認識してるはずだが コードでそれをチェックする術がないな (今後も追加される事は絶対ないだろうが) しかしinterfaceのどれかに合致するかっていう考え方ちょっと違うな 例えば interface A { a:number } interface B { b:string } があれば { a:1, b:
325 名前:"hoge" } はどっちにも合致する訳だから、コンパイルが通ればどれか(または両方)のinterfaceに合致してる と判別が出来るってだけのものだよ [] [ここ壊れてます]
326 名前:デフォルトの名無しさん [2016/03/24(木) 17:51:19.94 ID:QUxdzUzn.net] chromeでデバッグできますか?
327 名前:デフォルトの名無しさん mailto:sage [2016/03/24(木) 18:45:20.46 ID:bRX025wQ.net] >>312 .js にコンパイルするときに Source Map を出力できる。 それ以上のデバッグについては開発環境スレでどうぞ。
328 名前:デフォルトの名無しさん mailto:sage [2016/03/25(金) 02:00:24.75 ID:G+z1ebGz.net] >>312 weboack使ってるけどなんの問題もなくtsファイルにbreakpointが貼れる
329 名前:デフォルトの名無しさん mailto:sage [2016/03/25(金) 02:00:53.64 ID:G+z1ebGz.net] >>314 webpackです。typo
330 名前:デフォルトの名無しさん mailto:sage [2016/03/25(金) 12:36:24.15 ID:Ib2txsDS.net] >>314 iisサーバーは?
331 名前:デフォルトの名無しさん mailto:sage [2016/03/27(日) 23:00:49.72 ID:FjCKG/3R.net] typeScriptでWeakMapっていつから使えるようになるんですか? ES2015から使えるものっててっきりtypeScriptでもつかえるものかと
332 名前:デフォルトの名無しさん mailto:sage [2016/03/28(月) 14:50:43.22 ID:6ufq8Y0K.net] --target ES6にすれば使えるっていうかそれぐらい察しろ
333 名前:デフォルトの名無しさん mailto:sage [2016/03/28(月) 19:56:00.22 ID:YM89lTlN.net] >>318 えっ。それっておかしくないです? typeScriptって基本 ES2015 + 型なのかと。 アロー関数は標準でサポートしといてWeakMapは対象外ってどういうことなの
334 名前:デフォルトの名無しさん mailto:sage [2016/03/28(月) 21:20:10.15 ID:K6EkYblL.net] >>319 構文糖で対応できる機能は対応している JavaScriptエンジンが対応してくれないとどうしようもない機能は無理 それぐらい察しろ
335 名前:デフォルトの名無しさん mailto:sage [2016/03/29(火) 00:12:34.26 ID:clo72TFv.net] >>320 なるほど。てっきりtargetって出力するjsコードの対応バージョンでしかなくて、 typeScriptの仕様自体はどのtargetでも変化しないと思い込んでました。 つまりES2015のpolyfillの役割も果たしてくれるとばかり思っていました。 ありがとうございます。
336 名前:デフォルトの名無しさん mailto:sage [2016/03/29(火) 10:54:45.27 ID:NGEgZfA0.net] >>321 基本TypeScriptはES2015のpolifillだと思っていいけど 単に少ないコードで実装出来るものしか対応してないだけだ __extendsとか__decorateとかね 2.0でasync/awaitもES5で使えるようになるけど、もしWeakMapを対応したら 巨大なコードが*.jsの頭に引っ付くことになるけどそんなの嫌だろ
337 名前:デフォルトの名無しさん mailto:sage [2016/04/05(火) 23:45:55.11 ID:nWoaZGhX.net] JavaのNashornにrequire関数組み込んでTypeScript使えるようにしたが結構楽しいわ letの暗黙リネームが実行時に何か不具合起こすんじゃないかと少々気になる
338 名前:デフォルトの名無しさん mailto:sage [2016/04/06(水) 20:01:43.86 ID:NydnT1H+.net] >>323 letが導入されてから1.8になるまでforループ内でlet使うと特定の条件で実行時エラーを起こしてた 1.8で修正されたから古いバージョンの場合は気を付けた方がいいけど1.8以降は不具合なんて起こさないはず
339 名前:デフォルトの名無しさん mailto:sage [2016/04/11(月) 23:59:54.54 ID:/4tKcoWK.net] typescript初心者です。 Visual Studioで、 module mod { function func() { alert('func'); } } が、 var mod; (function (mod) { function func() { alert('func'); } })(mod || (mod = {})); になるのですが、分からないのは、 (mod || (mod = {})); の部分です。 これは何でしょうか? どなたか解説お願いいたします。あるいはヒントなどお教えください。
340 名前:デフォルトの名無しさん mailto:sage [2016/04/12(火) 00:19:14.57 ID:ep3rTpAI.net] >>325 mod 変数が定義済みなら再利用 or 無ければ新規の空オブジェクトを使う。 複数の場所で mod モジュールが定義される場合に、内容をマージすることになる。
341 名前:デフォルトの名無しさん mailto:sage [2016/04/12(火) 00:20:23.42 ID:L6C4Yo9J.net] (A || B)はAもしくはBが偽じゃなければその内容(結果)を返す特性があって
342 名前:単純に言うとmodが空ならオブジェクト代入して無名関数に渡すよってこと [] [ここ壊れてます]
343 名前:デフォルトの名無しさん mailto:sage [2016/04/12(火) 00:47:40.67 ID:X3YsmN+g.net] >>326 >>327 解説ありがとうございました。だいぶ分かってきました。 もう一つ教えて下さい。 二つのtsファイル ---------------- // file1.ts module mod { function func1() { alert('func1'); } } ---------------- // file2.ts module mod { function func2() { alert('func2'); } } ----------------
344 名前:デフォルトの名無しさん mailto:sage [2016/04/12(火) 00:48:40.40 ID:X3YsmN+g.net] から生成される二つのjsファイルを単純に連結して一つのファイルにします。 ---------------- var mod; (function (mod) { function func1() { alert('func1'); } })(mod || (mod = {})); var mod; (function (mod) { function func2() { alert('func2'); } })(mod || (mod = {})); ---------------- こういう単純な例だと問題は無かったのですが、実際の状況では連結したJSの実行時にエラーする場合がありました。 少し調べた限りでは、エラーの有無はJSファイルを連結する順番に依存するようなのですが、そういう事はありますか? やりたいのは、複数のJSファイルをmoduleで囲ってTS化して、そうやって出来上がったJSファイルを一つのファイルに連結したいのですが、エラーが出て行き詰っています。 こういうやり方は間違いですか?
345 名前:デフォルトの名無しさん mailto:sage [2016/04/12(火) 10:30:36.29 ID:ep3rTpAI.net] >>329 連結する順番でエラーになることはある。 特にグローバルスコープ(関数の外)で処理が走る場合かな? tslint を入れて no-use-before-declare (宣言前に使うと警告) で チェックする手はあるかもしれない。
346 名前:デフォルトの名無しさん mailto:sage [2016/04/12(火) 12:30:46.37 ID:MBVppC7j.net] >>330 情報ありがとうございました。 調べてみます。
347 名前:デフォルトの名無しさん mailto:sage [2016/04/12(火) 21:56:30.51 ID:aXmXxCLh.net] TypeScript 2.0プレビュー www.infoq.com/jp/news/2016/04/typescript-2-preview
348 名前:デフォルトの名無しさん mailto:sage [2016/04/13(水) 16:45:42.60 ID:xgAfpouO.net] おおって思ってchannel9の動画見てみたらマイクロソフトの人が未だにtsd 使ってデモしてたんだけどtsd非推奨じゃなかったんかい
349 名前:デフォルトの名無しさん mailto:sage [2016/04/13(水) 16:56:49.53 ID:xgAfpouO.net] 面白いねTypeScript2.0 undefinedとnullはそれぞれ独立した型になって let a: number|null|undefined みたいに宣言するようになるのか
350 名前:デフォルトの名無しさん mailto:sage [2016/04/13(水) 22:27:08.77 ID:JKiuLOht.net] voidでよくね
351 名前:デフォルトの名無しさん mailto:sage [2016/04/14(木) 12:17:58.56 ID:ea0e/BMW.net] C#のvirtual,overrideも実装してくれよ issueには何度かあがってるけどその度に否定されてんだよな、何でだ
352 名前:デフォルトの名無しさん [2016/05/01(日) 13:04:39.03 ID:tKi6j9CT.net] 匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、 BitTorrentがオープンソースで開発されています 言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか? Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします https://twitter.com/Lyrise_al ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw The Covenant Project 概要 Covenantは、純粋P2Pのファイル共有ソフトです 目的 インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します 特徴 Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW) 接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です DHTにはKademlia + コネクションプールを使用します UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は
353 名前:少なくなります) 検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません 4 [] [ここ壊れてます]
354 名前:デフォルトの名無しさん [2016/05/01(日) 20:44:35.23 ID:sHMevs8d.net] Visual Studio Comm. 2015でTypeScript 1.7.4.0を使ってます。 プロジェクトをビルドしてデバッグしても変更が反映されなくなりました。 仕方なく新しいプロジェクトを作ってソースを移動させているのですが、対処法はありますか?
355 名前:デフォルトの名無しさん mailto:sage [2016/05/01(日) 21:13:58.28 ID:1U34S4Ix.net] >>338 >変更が反映されなくなりました。 何の変更がどこに反映されないん? tsからjsが自動生成されないと言う意味? もしそうならtsに文法エラーが有るんじゃないか?
356 名前:デフォルトの名無しさん [2016/05/02(月) 10:47:24.02 ID:H1b5QbBD.net] レスありがとうございます。こんなに早く反応があるとは思いませんでした。見逃してしまって申し訳ないです。 >何の変更がどこに反映されないのか ソースコードの変更です。 ビルドして実行してもjsが前回のビルドのままで困っていました。 >tsからjsが自動生成されないと言う意味? >もしそうならtsに文法エラーが有るんじゃないか? 仰る通り文法エラーがあったみたいです。今では正常に実行できています。ご迷惑をおかけしました。 それにしても間違ったコードを書いてもビルドエラーにはならないんですね……。 これではどこでミスったかチェックしにくい。
357 名前:デフォルトの名無しさん mailto:sage [2016/05/02(月) 16:08:44.94 ID:WvgoLY0A.net] 「新しいプロジェクトを作ってソースを移動させ」たらうまくいくのだがという話じゃなかったのか
358 名前:デフォルトの名無しさん mailto:sage [2016/05/03(火) 07:37:48.31 ID:llYnk/DC.net] 「新しいプロジェクトを作ってソースを移動させたらうまくいく」ケースは俺も何度か経験したことがあるなぁ しかも>>338 と違ってコンパイルエラーは発生していない ビルドして実行してもjsが前回のビルドのままってところまでは一致してるんだよな (そもそもビルドできないのだが)
359 名前:デフォルトの名無しさん mailto:sage [2016/05/09(月) 17:02:14.42 ID:pzKdLl0R.net] Visual Studio2015で二つのTSのプロジェクトがあり、 Proj1 typescrpt1.ts commonA.ts commonB.ts Proj2 typescrpt2.ts commonA.ts commonB.ts 両者で共通のtsファイルが二つあるのだが、こう言う場合、オリジナルをProj1に入れておいて、 Proj2から参照するようなやり方は出来る? 現状では、Proj1でCommonA,Bを変更する度にPorj2に手作業でコピーしているのだが、 それだと毎回そんな作業するのが手間だし、うっかりProj2側でCommonのファイルを変更すると 逆にProj1にも修正をしなくてはならないので困るのだが。
360 名前:デフォルトの名無しさん mailto:sage [2016/05/09(月) 17:17:18.07 ID:8SRbjrMh.net] 既存のファイルを追加すれば参照してくれるでしょ プロジェクト以下に収めなきゃいけない理由がないなら common, proj1, proj2と横並びにすればいい
361 名前:デフォルトの名無しさん mailto:sage [2016/05/09(月) 17:28:41.05 ID:pzKdLl0R.net] >>344 レスありがとうございました。 既存のファイルを追加すると、そのコピーが追加されるので、結局343 で 説明したようなファイル構造になります。 困っています。
362 名前:デフォルトの名無しさん mailto:sage [2016/05/10(火) 15:04:25.21 ID:/c+E/E1d.net] だれも分からないの?
363 名前:デフォルトの名無しさん mailto:sage [2016/05/10(火) 15:34:09.22 ID:FvQx+NTV.net] VSでTypeScriptやってる人が少ないんでないの? CとかC++を一緒にやってる人じゃないと最近の人はVSCodeを使うだろうし
364 名前:デフォルトの名無しさん mailto:sage [2016/05/10(火) 18:31:49.18 ID:/c+E/E1d.net] >>347 VSCodeだと343のような状況はどうなるの? 共通部分は一元管理が出来るの?
365 名前:デフォルトの名無しさん mailto:sage [2016/05/10(火) 22:20:05.90 ID:ygHcjv1V.net] 私もやり方知りたいが分からんのでスタティックリンクにしてるがそれじゃ駄目?
366 名前:デフォルトの名無しさん mailto:sage [2016/05/10(火) 22:23:56.70 ID:/c+E/E1d.net] >>349 windowsでスタテクリンク出来る?
367 名前:デフォルトの名無しさん mailto:sage [2016/05/10(火) 22:31:47.62 ID:ygHcjv1V.net] ジャンクションでググて
368 名前:デフォルトの名無しさん mailto:sage [2016/05/10(火) 22:34:19.65 ID:LhMpTcEU.net] >>343 思想的には commonA/B を独立したプロジェクトにしてモジュールとして再利用するんだろうな。 こっそり同一ファイル扱いにするならファイル or フォルダをシンボ
369 名前:リックリンクにするか。 これと似たようなものだが、昔は svn:externals を使ったこともあったな。 [] [ここ壊れてます]
370 名前:デフォルトの名無しさん mailto:sage [2016/05/11(水) 21:11:57.56 ID:b7E4GV28.net] WindowsXPはハードリンクが出来るようになって便利だからフォルダをハードリンクにしたんだ で、リンクした方が不要になったからごみ箱に入れたんだ まだ、元のフォルダ内はなんともなかった 暫くたってごみ箱を空にしたんだよ そしたら元のフォルダ内のファイルが全部消去されちまったんだよ!当然ごみ箱にも無い 要するにWindowsでフォルダをハードリンクすんなって事
371 名前:デフォルトの名無しさん mailto:sage [2016/05/11(水) 22:31:42.85 ID:3ijDNnlQ.net] ジャンクションでも似たような問題あるのか、、 d.hatena.ne.jp/foldrr/touch/20091120/p1 いまはどうなんだろう
372 名前:デフォルトの名無しさん mailto:sage [2016/05/12(木) 18:40:46.37 ID:jzt1qSkA.net] >>353 Windowsってフォルダのハードリンク作れたっけ?
373 名前:デフォルトの名無しさん [2016/05/14(土) 11:35:56.64 ID:r8zKr16p.net] そもそも別物なのに同じ挙動をすると期待するのが間違い
374 名前:デフォルトの名無しさん mailto:sage [2016/05/14(土) 11:46:02.57 ID:fLeelvLJ.net] XPでもジャンクション使えたけど MSの態度が曖昧でどうしたいのかわからなかった Vista でこの辺のファイルリンクとか代替ストリームとか正式サポートされた
375 名前:デフォルトの名無しさん mailto:sage [2016/05/16(月) 19:25:09.47 ID:xXNLqPYG.net] >>355 XPの時はフォルダのハードリンクは作れたよ。今は知らん Linuxはフォルダ(ディレクトリ)のハードリンクはroot権限が必要になるな OS問わずにフォルダのハードリンクは危険ってことだ XPはシンボリックリンクが無くてハードリンクのみだから罠に嵌められた Vista以降はシンボリックリンクが使えるからそっちは特に問題はないはず
376 名前:デフォルトの名無しさん [2016/05/16(月) 21:06:35.83 ID:0jMm0VW7.net] XPの時はフォルダのハードリンクは作れん。XP現役で使っている。 異なるドライブでも可能なジャンクションならできる。
377 名前:デフォルトの名無しさん mailto:sage [2016/05/17(火) 11:18:29.53 ID:NWTAtPGB.net] >>359 もれも 358 はパーティションをフォルダにリンクする話と間違ってるなーと思ってみてた
378 名前:デフォルトの名無しさん mailto:sage [2016/05/17(火) 11:19:25.01 ID:NWTAtPGB.net] リンクっつーよりマウントだな
379 名前:デフォルトの名無しさん mailto:sage [2016/05/17(火) 13:37:15.22 ID:vW2/638O.net] 358だけど何らかのコマンドでリンクを作成したのは間違いないが 調べてみるとlinkd.exeの可能性が高い 要するにジャンクションって事か? なにぶんXP使ってたのはかなり昔の事なんで記憶が曖昧だったよ
380 名前:デフォルトの名無しさん mailto:sage [2016/05/17(火) 13:54:39.38 ID:awF8sDTJ.net] Linuxでもディレクトリのハードリンクはできなかったはず。 unix.stackexchange.com/questions/22394/why-are-hard-links-to-directories-not-allowed-in-unix-linux >>358 のroot権限うんぬんは、Solaris限定かもしれない。 Windowsでも記事がある。今ならmklinkだけでいい。昔はfsutilなりlinkdなりもあった。 www.atmarkit.co.jp/ait/articles/1306/07/news111.html フォルダのハードリンクはできないから >>353 も用語違い。 まぁ、ジャンクション+ごみ箱が多くの不幸な事故を生み出したのはその通りだが。
381 名前:デフォルトの名無しさん mailto:sage [2016/05/17(火) 14:37:13.73 ID:74/nDTTZ.net] そんな事より元々の質問の答えは無いの? 俺も知りたい。共通ライブラリ化出来ないと不便だよな。
382 名前:デフォルトの名無しさん mailto:sage [2016/05/17(火) 15:17:02.05 ID:awF8sDTJ.net] そんな事より元々の質問をVisual Studio 2015のスレで聞け。 簡単な回答は >>344 >>352 で既出。 VS2015のUIだとファイルのコピーが作られるのが問題なのだろうが *.csproj を直接テキスト編集すれば上位フォルダのパスも扱えるようには見える。 Include="..\xxx"
383 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 14:0
] [ここ壊れてます]
384 名前:0:10.58 ID:DKR1hPoU.net mailto: windows10でtypescriptやるには何をインストールすればいいのさ? [] [ここ壊れてます]
385 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 14:31:56.32 ID:xl+n8Rkn.net] 知らないものを始めたいときは、とりあえず「○○ 入門」でぐぐれ
386 名前:デフォルトの名無しさん mailto:sage [2016/06/01(水) 22:34:33.37 ID:tjGnKxey.net] ms謹製なので、msのツールが使えそう
387 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 18:08:24.21 ID:3F7VjM1T.net] VSで作っているけど #region #endregion 的な物ない?
388 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 19:51:23.66 ID:BRPGaK18.net] >>369 無い
389 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 21:45:06.08 ID:dGWHMJs+.net] >>370 ありがとうございます!
390 名前:369 mailto:sage [2016/06/04(土) 22:49:04.19 ID:3F7VjM1T.net] >>371 お前誰?
391 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 22:49:50.74 ID:3F7VjM1T.net] >>370 ないんですね ありがとうございます
392 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 23:36:31.88 ID:o/6G/bzU.net] >>369 Proposal: Preprocessor Directives https://github.com/Microsoft/TypeScript/issues/4691 プリプロセスの提案はあるよ でもこれに限らず、C#にある仕様だからといって優先的に取り組む感じはしないかな 節度を持ってJS文化に適合させていきたいのかもね
393 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 23:55:44.04 ID:Ly/Eq9zA.net] プリプロセスなんてコンパイラだからこその機能なのにTypeScriptの設計者は 若干偏屈なところがあるよな abstractは導入しといてvirtual,overrideがいらねーとか意味が分からん
394 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 18:43:32.96 ID:sRhznVmp.net] 色々入れすぎるとまたアンチM$(笑)から叩かれそう
395 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 22:29:38.27 ID:L2JcFKfv.net] >>375 overrideは入りうるよ 一度は断ったけど、最近になって再検討して受け入れることにしたようだ Support override keyword on class methods https://github.com/Microsoft/TypeScript/issues/2000
396 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 22:52:16.31 ID:E+nifBZa.net] >>377 お、375じゃないけど超うれしい
397 名前:デフォルトの名無しさん mailto:sage [2016/06/16(木) 19:04:16.91 ID:PJUBR4L+.net] The Future of Declaration Files https://blogs.msdn.microsoft.com/typescript/2016/06/15/the-future-of-declaration-files/ 関連 npmでTypeScriptの型定義を管理できるtypesパッケージについて qiita.com/laco0416/items/ed1aadf335f12cd3618d
398 名前:デフォルトの名無しさん [2016/07/15(金) 00:06:52.35 ID:3lt2T5b1.net] Announcing TypeScript 2.0 Beta https://blogs.msdn.microsoft.com/typescript/2016/07/11/announcing-typescript-2-0-beta/ TypeScript 2.0 Beta 変更点 qiita.com/vvakame/items/ae239f3d6f6f08f7c719
399 名前:デフォルトの名無しさん mailto:sage [2016/07/15(金) 00:10:10.35 ID:3lt2T5b1.net] 15K行のアプリをTypeScript1.8から2.0に移行してみた rhysd.hatenablog.com/entry/2016/07/15/090000
400 名前:デフォルトの名無しさん mailto:sage [2016/07/17(日) 11:23:12.55 ID:cN3YyD0v.net] ES3対応ってまだいるの?
401 名前:デフォルトの名無しさん mailto:sage [2016/07/18(月) 16:13:28.10 ID:jfk77b+M.net] https://github.com/showcases/programming-languages TypeScript ★13,201 CoffeeScript ★13,152 遂にGithubスター数がCoffeeScriptを超えた
402 名前:デフォルトの名無しさん mailto:sage [2016/07/19(火) 12:58:14.30 ID:HIwcb2q8.net] 比べる事に意味があるとは思えんがな… CoffeeScriptはAltJSでTypeScriptはBetterJSだ JavaScriptが嫌いな人はCoffeeScriptを使えばいいんだ
403 名前:デフォルトの名無しさん mailto:sage [2016/07/24(日) 15:50:35.09 ID:5+wwO3kQ.net] Intellij IDEAでTS開発捗りすぎワロリンヌ
404 名前:デフォルトの名無しさん mailto:sage [2016/07/26(火) 06:50:53.34 ID:HN1KCMsQ.net] JavaScriptとTypeScriptの関係は C言語とJavaの関係に似
405 名前:ている様な気がする [] [ここ壊れてます]
406 名前:デフォルトの名無しさん mailto:sage [2016/07/26(火) 07:58:39.74 ID:l+RwS+H8.net] >>386 だから何よ?
407 名前:デフォルトの名無しさん mailto:sage [2016/07/26(火) 15:46:52.18 ID:iOw6CH/m.net] プロトタイプベースは人類には早すぎたんだ クラスベースでないと万人には理解できない
408 名前:デフォルトの名無しさん mailto:sage [2016/07/26(火) 16:29:48.15 ID:GAZIoYVE.net] プロトタイプベースは既存のインスタンスから継承できる先進的な機能ではあるが そもそも他の言語では隠されてる継承の仕組みがむき出しになってるだけなんで 無理に使う必要もない クラスを作るイディオムとか普通にclassを使えばいいんだ
409 名前:デフォルトの名無しさん mailto:sage [2016/07/27(水) 06:57:54.53 ID:Pn9H7j+u.net] >>387 歴史は繰り返す
410 名前:デフォルトの名無しさん mailto:sage [2016/07/27(水) 13:58:29.20 ID:lrmpmMbD.net] WebAssemblyは当面C++のゲーム用だけどDOMもいじれるようになる予定だから そうなるとまたWeb用言語の勢力図は変わるかもしれないな Webの世界に安定は無い
411 名前:デフォルトの名無しさん mailto:sage [2016/07/27(水) 14:22:46.06 ID:5Q3W/uen.net] デバッガが当分クソそうだけどWebKitはそのうち充実させて生JS殺しにきそう
412 名前:デフォルトの名無しさん mailto:sage [2016/07/27(水) 23:47:21.54 ID:Bmh+9kmU.net] >>386 CとC++じゃね 統一言語の上位互換で、元々はトランスパイラだし
413 名前:デフォルトの名無しさん mailto:sage [2016/07/28(木) 06:25:04.12 ID:jPXeBRxR.net] FunScriptでもやるか
414 名前:デフォルトの名無しさん mailto:sage [2016/07/28(木) 19:15:17.96 ID:O8Vfrh0P.net] >>393 LLVMじゃね
415 名前:デフォルトの名無しさん mailto:sage [2016/07/29(金) 10:57:47.10 ID:eqy9GKk1.net] 2.0のstrictNullChecksへの対応は結構キツイなぁ 「フィールドAがあれば、フィールドBも必ずある」ような暗黙ルールを咎められる 「変数?」が「型 | undefined」の扱いになるから 無効な値にはnullを使わずundefinedで統一したほうが良さそうだ 構文としては、返値、ローカル変数、末尾以外の引数にundefinedを許したい場合 いちいち「| undefined」が必要になる。Swiftのように ? は型の側が良い気がするんだが
416 名前:デフォルトの名無しさん mailto:sage [2016/07/29(金) 14:56:44.05 ID:LtIoC4Yb.net] undefinedはプロパティそのものが存在しないことを表すんだからプロパティ側に?付けるのは自然でしょ 2.0は個人的にはかなり好きだな 最近の新言語といえばWeb系のノリで適当に作られてるのが多い中、これほど思想が明確で一貫した言語は珍しい
417 名前:デフォルトの名無しさん mailto:sage [2016/07/29(金) 16:06:58.19 ID:eqy9GKk1.net] 「存在しない」と「undefinedを保持している」の2つの意味があるからなぁ 前者ならプロパティの属性、後者なら型の属性に解釈できるように感じる strictNullChecksは簡単には対応できなかったが noImplicitThis, noUnusedLocals, noUnusedParameters は 影響が少ないわりにバグを拾ってくれてありがたかった
418 名前:デフォルトの名無しさん mailto:sage [2016/07/29(金) 23:41:16.66 ID:rRyJkXWQ.net] >>398 JavaScriptはundefineって言われても本当にundefinedなのか意図的に設定したundefinedか判別不能だから nullとundefinedを区別する意味があるけど、TypeScriptの場合は「存在しない」なんて有り得ないからnullは要らない子だし undefinedの場合は意図的に設定したと分かる
419 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 00:18:48.03 ID:tmproLvF.net] ノードの有無のチェックは存在を確認するし番兵は一般的にnullを使う 前者はプロパティで後者は型だろう
420 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 08:46:23.50 ID:d/v3ZRhl.net] F#「あなたはヌルチェックでどれほど人生を無駄使いしているかを知るべきである」
421 名前:デフォルトの名無しさん [2016/07/30(土) 13:20:14.13 ID:NnN7Vre0.net] ===を使えば全部解決
422 名前:デフォルトの名無しさん mailto:sage [2016/07/30(土) 23:28:44.49 ID:r21OKS05.net] "型?" については "| null"、"| undefined"、その両
423 名前:の どれにすべきかで議論がまとまらなかったみたいだ しばらくは採用されないだろう https://github.com/Microsoft/TypeScript/issues/7426 https://github.com/Microsoft/TypeScript/issues/7488 [] [ここ壊れてます]
424 名前:デフォルトの名無しさん mailto:sage [2016/08/01(月) 14:04:09.45 ID:FziUxCeM.net] >>400 DOMとかWebGLとか普通にnullを返すからどうしてもnullを使わないといけない場面は出てくる けど、TypeScriptだけの処理の場合はnullを使う意味は全く無いな 本家のコーディングスタイルにもnullじゃなくundefinedを使えと書いてある
425 名前:デフォルトの名無しさん mailto:sage [2016/08/01(月) 18:46:01.78 ID:2iI0/+FF.net] JavaScriptの根幹にある設計ミスだからな トランスパイラの層ではその尻を拭うのも難しかろう
426 名前:デフォルトの名無しさん mailto:sage [2016/08/01(月) 19:32:59.87 ID:RWxbqWQ0.net] >>404 知ってるけど命令型アルゴリズムを書くときにわざわざnullをundefinedに置換するほどのメリットもない 教科書通りnull使ったほうが思考のオーバーヘッドがなくて楽 どちらでもいい時はundefinedに寄せる
427 名前:デフォルトの名無しさん mailto:sage [2016/08/01(月) 22:13:22.57 ID:cFMFBdlm.net] Suggestion: Extension methods https://github.com/Microsoft/TypeScript/issues/9 初期から提案のあった拡張メソッドだが、不採用が決まった
428 名前:デフォルトの名無しさん mailto:sage [2016/08/02(火) 00:27:46.69 ID:EfYzXtbg.net] 型の有無で動作が変わるのはTypeScriptの設計思想からして不適切
429 名前:デフォルトの名無しさん mailto:sage [2016/08/02(火) 12:10:13.85 ID:rXn2IC8I.net] クラス定義には含まれないプロパティをインスタンスが持てる言語で そもそも拡張メソッドが成り立つものなのかね? Java interfaceのdefaultメソッドのほうがまだ芽がある気がするが
430 名前:デフォルトの名無しさん mailto:sage [2016/08/02(火) 17:21:45.08 ID:04yi8jv3.net] >>406 教科書って何だよ 俺たちの教科書はTypeScript公式のドキュメントだけだ
431 名前:デフォルトの名無しさん mailto:sage [2016/08/02(火) 18:37:46.13 ID:+e4iDA+F.net] >>410 アルゴリズムの本じゃね?
432 名前:デフォルトの名無しさん mailto:sage [2016/08/03(水) 00:12:57.56 ID:jr+ageRA.net] nullかどうか判定するのに hoge === null とかやってないよな? !hoge で統一すればundefinedのみで何の問題も無い
433 名前:デフォルトの名無しさん mailto:sage [2016/08/03(水) 01:16:56.62 ID:Ot1v5VqO.net] これはひどい釣り
434 名前:デフォルトの名無しさん mailto:sage [2016/08/03(水) 08:01:27.31 ID:8fjgpLNn.net] 数値と文字が渡されないケースなら ! でも良い 渡されるなら == null (2個) を使う TSLintの設定で、比較で null を使うのは許して、値としては許さないのが欲しいな
435 名前:デフォルトの名無しさん mailto:sage [2016/08/03(水) 12:08:49.21 ID:mbys/AN5.net] null汚染
436 名前:デフォルトの名無しさん mailto:sage [2016/08/03(水) 14:40:42.74 ID:3251V7HB.net] >>413 お前がど素人なのはわかったよw
437 名前:デフォルトの名無しさん mailto:sage [2016/08/03(水) 17:20:15.41 ID:3251V7HB.net] >>413 ,414とかってnumberな変数にnullとか代入しちゃってんだろうな… そりゃstrictNullChecksで困るわけだ
438 名前:デフォルトの名無しさん mailto:sage [2016/08/03(水) 21:04:30.24 ID:Ot1v5VqO.net] 入れるわけねーだろバカ
439 名前:デフォルトの名無しさん mailto:sage [2016/08/03(水) 22:55:31.78 ID:Ve2x0gaK.net] 皆さん結局nullとundefinedを区別しているの?どんなコードを書いているの?
440 名前:デフォルトの名無しさん mailto:sage [2016/08/03(水) 23:55:39.77 ID:8fjgpLNn.net] 一つの変数で区別する用途を無理やり考えるならば ・undefined: 初期化前 ・null: 利用不可 ・object: 利用可 なんて例があるかもしれない。普通はNullObjectで済ませるか
441 名前:デフォルトの名無しさん mailto:sage [2016/08/04(木) 02:41:29.69 ID:0QnTEdcF.net] >>418 じゃあif(!hoge)の判定がTypeScript的には何も問題無いことは分かるよな? どの辺が釣りなのか教えてくれ
442 名前:デフォルトの名無しさん mailto:sage [2016/08/04(木) 09:59:24.73 ID:aMt1KCpE.net] strictNullChecksを気持ちよく使いたいなら構造から見直しになるな { x?, y? } // 必ずペアで使う ではなく { pt?: { x, y } } としないと ! を避けられない
443 名前:デフォルトの名無しさん mailto:sage [2016/08/08(月) 22:15:39.27 ID:W4Hzna5O.net] だれかtypeScriptでバリバリサーバサイドもやってるぜって人いる? 使い勝手を是非聞きたい
444 名前:デフォルトの名無しさん mailto:sage [2016/08/25(木) 22:38:44.02 ID:yGHELMdE.net] マクロのミスでconst enum同士で除算しちゃってて間違い探しをする羽目になったぜ ありえない数値になってたのにコンパイラは叱ってくれなかったよ
445 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 07:44:50.99 ID:LCNVy+4G.net] >>424 enum同士の除算結果の型はnumberだから、コンパイラの解釈は妥当だぞ 「単位付き数値」があればエラーにできるケースもあるかもしれない Nominal typesの一環で良い感じの機能が入らないものか
446 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 10:18:15.73 ID:uxIG+t+y.net] numberからconst enumへ暗黙的な変換が許されるのが問題だと思ったんよ 警告されれば先に気づくことができたから
447 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 15:52:13.72 ID:mbeLOtT9.net] 暗黙も何もenumの要素は最初からただのnumberだからな JavaScriptとの互換性を考えれば妥当な仕様だろう
448 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 16:16:08.43 ID:LCNVy+4G.net] 他言語と比べると確かにチェックがガバガバだが interfaceを明示的にimplementsしなくてもシグニチャだけを見ることと比べると 一貫性はあるとは思う。型システムがStructuralなことの弊害だろう 数値でなくても良いなら enum より String Literal Types を使うべきなんだろうな
449 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 16:48:05.33 ID:mbeLOtT9.net] 型システム自体はJavaScript側にあるんだ TypeScriptがやってる事はJavaScriptのソースに書かれてる型を見えるようにしてるだけとも言える そもそもJavaScriptが動的型なんだから無理やり静的型にしようとしても微妙なところは出てくるだろうな
450 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 04:24:05.73 ID:oFB7MvRf.net] 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
451 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 02:34:58.82 ID:D4RF+Hn1.net] switch使うとダサくなるな match withにして欲しい
452 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 15:48:27.54 ID:LgVEFfHs.net] 内部モジュールについて教えてください。 これを使う場合ってconcatで1ファイル化する場合ってことでいいんでしょうか webpackをつかって1ファイル化する予定なんですがその場合は外部モジュールを使う認識であっていますか?
453 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 17:23:11.44 ID:dDo1g1S1.net] 外部モジュールになるファイルは独立してるはず 今はnamespace推奨で内部モジュールって表現はあまり意味を成してない? ので1ファイルにまとめたら名前空間で仕切られてるだけって考えでいいんじゃないか
454 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 00:54:26.94 ID:FrYijLTu.net] 昔からある単なるmoduleはもうobsoleteですぐにnamespaceにリネームすべきだね いわゆるモジュールはJavaScriptの世界を知らないと理解しがたいものになってるね
455 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 00:56:21.93 ID:FrYijLTu.net] ES6のmuduleが普及すればかなりシンプルになるんだろうけど、まだブラウザがサポートしてない
456 名前:デフォルトの名無しさん mailto:。sage [2016/09/09(金) 21:36:47.25 ID:oMlYA35z.net] letは再入不可にして欲しいなあ
457 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 21:41:01.71 ID:0o6Zl0oX.net] constじゃあかんの?
458 名前:デフォルトの名無しさん mailto:。sage [2016/09/10(土) 07:30:02.50 ID:XD8JXdoT.net] なんか名前が先祖帰りっぽくてなあ
459 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 01:15:44.93 ID:PWIs+lC0.net] >>436 は「再入」不可と言ってんだが…
460 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 01:38:43.42 ID:m+TGnnw0.net] リエントラントを意識したことが無かったりすると 再入って言葉を再代入の変わりに使ってもいいじゃん?とか思ってしまうのだろう
461 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 08:21:20.09 ID:o8qO+nVm.net] 「リエントラントな変数」はナンセンス
462 名前:セから、ま、多少はね? [] [ここ壊れてます]
463 名前:デフォルトの名無しさん mailto:sage [2016/09/14(水) 09:26:01.83 ID:tSXXNMuv.net] tsってjsに変換して型情報捨てちゃってるけどバイナリにコンパイルとかサポートしないのかな WebAssemblyにそのまま使えたら面白いことになりそう
464 名前:デフォルトの名無しさん mailto:sage [2016/09/14(水) 09:52:25.62 ID:EEwsGEAZ.net] asm.jsは文法だけjsのサブセットで実行モデルは全然違うんでサポートしないっつうかできなかったはずだが、WebAssemblyも同じじゃないの?
465 名前:デフォルトの名無しさん mailto:sage [2016/09/14(水) 10:28:43.01 ID:8JRyg+5x.net] 折角の型情報を活かせるのが構文チェックだけで 高速化には寄与しないってのは勿体ないのは確かだな
466 名前:デフォルトの名無しさん mailto:sage [2016/09/14(水) 13:51:30.89 ID:Adg+xGfe.net] TypeScriptのビジョン的には、そういうのはESが新バージョンで型アノテーションを導入して ブラウザによって最適化されるべきということなんじゃない? ハックで実装するのはTypeScript的じゃないよ
467 名前:デフォルトの名無しさん mailto:sage [2016/09/14(水) 14:43:49.29 ID:UUl7aTux.net] ES5と同じようにwasm用のサブセット作って段階的にサポートしていけば余裕しょ
468 名前:デフォルトの名無しさん mailto:sage [2016/09/14(水) 14:58:26.52 ID:Adg+xGfe.net] アセンブリレベルまでコンパイルしようと思えば現在JSに丸投げしてる部分をTSで独自に定義し直す必要があるから、 仕様はサブセットどころか無茶苦茶肥大化するよ
469 名前:デフォルトの名無しさん mailto:sage [2016/09/14(水) 15:06:48.85 ID:eWqPmXTS.net] どうせJavaやC#がWebAssemblyの出力に対応するだろうし、高速化を期待するならそっちを使うべきだな
470 名前:デフォルトの名無しさん mailto:sage [2016/09/14(水) 15:12:59.56 ID:eWqPmXTS.net] ただ、Webの世界はAPIが全てJavaScript用に定義されてる訳だから DOMをいじるとかWeb関連のコードを書こうとしたらJavaScript使うのが一番楽だろう で、TypeScriptを使えばエラーの少ないコードが書けるよってだけの存在だな
471 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 09:53:22.62 ID:ye3OhaXn.net] netbeansでtsファイルをコンパイルできますか?
472 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 07:28:38.08 ID:wUPl9fHa.net] TypeScript 2.0 正式リリース https://blogs.msdn.microsoft.com/typescript/2016/09/22/announcing-typescript-2-0/
473 名前:デフォルトの名無しさん mailto:sage [2016/09/25(日) 21:22:23.16 ID:rgw8PMte.net] Visual Studio2015のTypeScript2.0で if(1===2){ ... } とすると、 エラー TS2365 演算子 '===' を型 '1' および '2' に適用することはできません。 になるのですが、1と2を比較すると何が悪いのでしょうか?
474 名前:デフォルトの名無しさん mailto:sage [2016/09/25(日) 22:06:10.66 ID:s0l/HB/m.net] >>452 Tagged Union 由来のエラーのような気がする ナンセンスなコードだけど、気になるようならエラーレポートしておいで 片方が変数なら問題ないから、普通にコードを書くうちは表面化しない
475 名前:デフォルトの名無しさん mailto:sage [2016/09/26(月) 03:17:54.07 ID:Pt8k1v+W.net] >>451 Revised 型の国のTypeScript typescript.ninja/typescript-in-definitelyland/ >>430 TypeScript 2.0.3 変更点 qiita.com/vvakame/items/826bf193dd301862014f
476 名前:デフォルトの名無しさん mailto:sage [2016/09/26(月) 12:48:28.20 ID:KtFZyGzz.net] 型の国新人研修マニュアルみたいで微妙だった
477 名前:デフォルトの名無しさん mailto:sage [2016/09/26(月) 14:39:12.43 ID:ymOrEJcI.net] 一瞬変な絵が出てブラクラかと思った techbooster.github.io/c90/#typescript
478 名前:デフォルトの名無しさん mailto:sage [2016/09/26(月) 23:44:06.70 ID:9aeHOXYg.net] >>452 これは興味深い挙動だな 確かにnumberよりも1や2という「型」の方がより特殊化されてるからそっちで比較されちゃったんだろうな let n: 1 = 1; if (n === 2) { // 同じエラー if (n === <number>2) { // OK (もちろんfalseになる) number型定数のデフォがnumber型だと最初がエラーにならなくなるから難しい問題だな 定数同士の比較の時は型を昇格させるみたいな処理
479 名前:追加する事になるのかな [] [ここ壊れてます]
480 名前:デフォルトの名無しさん mailto:sage [2016/09/27(火) 00:14:39.14 ID:pG4L5ums.net] literal types増えたのリリースノートに書いてあるだろ アナウンスのドキュメントさえ読まないバカが賢ぶってもまるわかりなんだよ
481 名前:デフォルトの名無しさん mailto:sage [2016/09/27(火) 00:21:02.93 ID:DHOAQjGg.net] 変なのが来た
482 名前:デフォルトの名無しさん mailto:sage [2016/09/27(火) 13:49:47.90 ID:cO8I5ivP.net] Delphiか、、Prismはお試しで終わったっけな
483 名前:デフォルトの名無しさん mailto:sage [2016/09/27(火) 16:37:55.22 ID:LSfhFpLX.net] espower-typescriptのtypescript2対応版ってないですか?
484 名前:デフォルトの名無しさん mailto:sage [2016/09/27(火) 18:40:40.20 ID:LSfhFpLX.net] espower-typescriptは自動でproject rootのtsconfig.jsonを参照しているんですが 別ファイルで指定する方法ないでしょうか?
485 名前:デフォルトの名無しさん mailto:sage [2016/09/27(火) 22:52:10.27 ID:K3k5rGhG.net] >>458 とりあえず>>452 のエラーの理由を詳細に説明してくれ
486 名前:デフォルトの名無しさん mailto:sage [2016/09/30(金) 12:56:49.51 ID:Y6l190wq.net] typescriptでは、 こういう書き方をするようですが、 $(document).ready(() => { ... }); 普通の書き方 $(document).ready(function () { ... }); だとダメなのでしょうか?
487 名前:デフォルトの名無しさん mailto:sage [2016/09/30(金) 13:07:29.24 ID:LMNz6D7V.net] >>464 全く問題ないよ。関数内のthisの指し先の違いにだけ注意がいる
488 名前:デフォルトの名無しさん mailto:sage [2016/09/30(金) 17:16:18.31 ID:ff48EwFg.net] >>464 typeScriptというよりes2015ですね。
489 名前:デフォルトの名無しさん mailto:sage [2016/10/05(水) 16:03:45.86 ID:ndferu82.net] jQueryの場合はコールバック内で$(this)とかするけど() => {にするとおかしな事になる(最新だとどうなるかは分からん) だからjQueryに渡す場合は全部functionにしてる。一貫性がなくなって気持ち悪いけど
490 名前:デフォルトの名無しさん mailto:sage [2016/10/06(木) 09:02:48.12 ID:RX03s8Mg.net] どちらも関数ではあるけど用途に違いがある以上、元より一貫性を出すことなんてできないでしょ
491 名前:デフォルトの名無しさん mailto:sage [2016/10/06(木) 15:59:28.90 ID:xaiWfMZS.net] () => {}.bind(this)
492 名前:デフォルトの名無しさん mailto:sage [2016/10/06(木) 20:20:49.67 ID:57+jsWi1.net] >>468 用途に違いがあるっていうのかな? functionの挙動に依存しちゃってるから仕方なく使ってるってだけだし、いずれ使う必要は無くなる
493 名前:デフォルトの名無しさん mailto:sage [2016/10/07(金) 14:51:03.71 ID:CXORFQa6.net] null合体演算子はありますか?
494 名前:デフォルトの名無しさん mailto:sage [2016/10/08(土) 21:45:49.55 ID:2uwi8nYQ.net] >>471 || のことかな? falseだとダメだけど
495 名前:デフォルトの名無しさん mailto:sage [2016/10/20(木) 18:22:59.19 ID:UBHF5fAS.net] typescriptでnode_modules配下のjsコードのimportは可能ですが 自作のjsコードをimportして使いたいのですが可能でしょうか? 具体的に言うとpegjsで作ったparserをtypescriptから使いたいんです。
496 名前:デフォルトの名無しさん mailto:sage [2016/10/21(金) 09:58:59.53 ID:xTFSBjWO.net] >>473 qiita.com/m0a/items/710b8f2b8327868cf049
497 名前:デフォルトの名無しさん mailto:sage [2016/10/21(金) 10:02:09.42 ID:PxEW311p.net] 公開部分だけなら自分で定義ファイル書くのは容易なんじゃないか もしくはソースをTypeScriptに変換しちゃって-d付きでコンパイル
498 名前:デフォルトの名無しさん mailto:sage [2016/10/21(金) 12:40:55.64 ID:xTFSBjWO.net] ちょっと考えればtsだってjsに変換してからimportしてるわけだからエラーが出てるようにみえるのは 定義がないだけってわかるだろうに。アホですな。
499 名前:デフォルトの名無しさん mailto:sage [2016/10/24(月) 23:34:32.07 ID:oa9Cbf2z.net] typescript2.0から.d.tsのデフォルトの検索パスってどうなってるんですかね? とりあえず自分で定義したのはnode_modules/@types/ に置くことで認識はするんですけど 気持ち悪いのでできればnode_modulesに置きたくないんですよね
500 名前:デフォルトの名無しさん mailto:sage [2016/10/25(火) 00:14:10.49 ID:jY50IjHL.net] その手の質問はQ&Aサービス使え
501 名前:デフォルトの名無しさん mailto:sage [2016/10/25(火) 09:54:10.21 ID:wi8xj/Ad.net] >>477 --typeRoots 次からhttps://github.com/Microsoft/TypeScript/wikiを必
502 名前:ヌとしてテンプレに入れようぜ [] [ここ壊れてます]
503 名前:デフォルトの名無しさん mailto:sage [2016/10/25(火) 15:38:46.44 ID:DJibeu24.net] そう言わずに教えてあげればいいじゃない。どうせ話題もないんだし
504 名前:デフォルトの名無しさん mailto:sage [2016/10/25(火) 16:45:27.88 ID:k0D4gpoS.net] .net frameworkを使えたりframeworkからコンパイルできれば面白くなりそうなのに
505 名前:デフォルトの名無しさん mailto:sage [2016/10/25(火) 18:39:55.45 ID:UTXk7OSn.net] たしかに .Net Framework使えたら便利だな 現状ではNode.jsから外部コマンドを叩いて C#やPowerShellを経由すればできるんじゃね
506 名前:デフォルトの名無しさん mailto:sage [2016/10/25(火) 20:33:02.00 ID:DJibeu24.net] やっぱりTypeScript使いの人はMicrosoftマンセーの人が多いの? Mac使いとしては.Netが使えたからどうなんって感じなんだが。 ElectronとかでTypeScriptを使う話をしてるの?
507 名前:デフォルトの名無しさん mailto:sage [2016/10/25(火) 21:30:56.89 ID:VLkXttsf.net] Windows向けtypescript処理系自体jscriptにコンパイルされて.NETオブジェクト経由でファイルアクセスしてなかったか
508 名前:デフォルトの名無しさん mailto:sage [2016/10/26(水) 02:40:39.39 ID:m/Az1cPZ.net] >>483 >TypeScript使いの人はMicrosoftマンセーの人が多いの? 特定の企業が好きというよりかは デファクトスタンダードに乗りたいだけ WinとMacならWinが(価格性能比的に)使いやすいし AndroidとiPhoneならAndroidが使いやすいから (規制が少ないのでとくに開発側としては)
509 名前:デフォルトの名無しさん mailto:sage [2016/10/26(水) 03:51:14.56 ID:CrOhdQQd.net] typescript使うよりc#で書くほうが楽だよね
510 名前:デフォルトの名無しさん mailto:sage [2016/10/26(水) 07:48:56.60 ID:JLzF9ZGl.net] >>481 JsProjectWinRTNamespace: https://msdn.microsoft.com/library/mt125480 WinRT (UWP) ならJavaScript側へ公開できるから、それを使うことは可能。 なんにせよ、JavaScriptホスト側を握っていれば (ChakraCore等) 好きにできる。Macでも。
511 名前:デフォルトの名無しさん mailto:sage [2016/10/26(水) 10:52:47.34 ID:jSNrAQ3l.net] >>484 .netじゃなくてWSHを使ってると思う tsc.jsの2630行目辺りを読んでみれ
512 名前:デフォルトの名無しさん mailto:sage [2016/10/26(水) 14:57:17.75 ID:L9VZpe/b.net] tsc.js https://github.com/Microsoft/TypeScript/blob/master/lib/tsc.js
513 名前:デフォルトの名無しさん mailto:sage [2016/10/27(木) 00:16:48.17 ID:e6l93V+P.net] >>485 surfaceて高いイメージあるが。 最近はmacも安いし、unix系だからweb系ならmacの方が人気ないか? そしてtypeScript使うやつはweb系だよね。
514 名前:デフォルトの名無しさん mailto:sage [2016/10/27(木) 00:28:41.45 ID:rC8yedLe.net] Web系といってもBtoBの比較的かっちりしたものをやってるところはC#やJava使ってWindows上で開発してるところも多いよ そしてTypeScriptもWeb系の中では比較的そっちの方で好まれてるイメージ
515 名前:デフォルトの名無しさん mailto:sage [2016/10/27(木) 07:44:18.44 ID:aKCl6pYl.net] Web系じゃないけどソフトのプログラムでJavaScriptが採用されてるから使ってるよ
516 名前:デフォルトの名無しさん mailto:sage [2016/10/31(月) 11:16:34.62 ID:zObjWshz.net] データと操作を分離する運用 https://goo.gl/L2gey4 上記スタックオーバーフローを見てたんですが データ構造を扱うときにclassを使わずにすべてjsonにしてしまうって運用は結構を有る話でしょうか? 個人的にはElixirも触っていてデータ構造と処理関数を分けると言うのはアリだとは思うんですが 手元のコードはclass使いまくりでシリアライズが必要になったタイミングで軽く後悔しているところです(^ρ^)
517 名前:デフォルトの名無しさん mailto:sage [2016/10/31(月) 12:47:50.83 ID:UgzYDGEX.net] そんなに難しい話じゃないような class Pen { constructor(private json: PenData) {} } でいいじゃん
518 名前:デフォルトの名無しさん mailto:sage [2016/10/31(月) 12:58:02.65 ID:zObjWshz.net] >>494 それでデシリアライズしたものをシリアライズした時
519 名前:にどうやってPenDataだと特定するの? [] [ここ壊れてます]
520 名前:デフォルトの名無しさん mailto:sage [2016/10/31(月) 13:30:00.95 ID:lUtaNTCT.net] >>495 シリアライズした構造が固定なら、ルートから順に再構築するのでは? 自分で全てのコンストラクタなりdeserializeメソッドを実装することになる 汎用デシリアライズ関数1個で全てを賄うつもりなら、JSON内にクラス名を保持して クラス名とJSONからオブジェクトを構築するファクトリを用意するのかな TypeScriptは実行時型情報が無いから、意外と素直で原始的な方式になると思う
521 名前:デフォルトの名無しさん mailto:sage [2016/10/31(月) 16:02:19.09 ID:zObjWshz.net] >>496 ですよね。結局こういうめんどくさい実装になるので、だったら 最初からロジック的にデータ構造はすべてjsonにしてしまったほうが楽かなと。
522 名前:デフォルトの名無しさん mailto:sage [2016/10/31(月) 17:59:38.01 ID:lUtaNTCT.net] >>497 ロジック的にJSON (=循環の無い木構造) にできるなら、それが楽だとは思う 実行時には循環参照が必要になる場合は、保存時にフラットなJSONに変換せざるを得ない これを汎用化していくと、いわゆるO/Rマッパーになるんだろうな
523 名前:デフォルトの名無しさん mailto:sage [2016/10/31(月) 20:32:53.85 ID:963XFQ2I.net] ここまでなんのためにシリアライズするか確認するやつなし
524 名前:デフォルトの名無しさん mailto:sage [2016/10/31(月) 21:41:15.52 ID:UgzYDGEX.net] >>495 そんなもんまともなスキーマ設計してたら一意に決まるだろ JSは伝統的にAPI指向で、入出力のスキーマだけはきっちり守って あとは適当に辻褄合わせすればいいという考え方をするもんなんだよ エンティティを重視しないの
525 名前:デフォルトの名無しさん mailto:sage [2016/10/31(月) 21:42:12.65 ID:zObjWshz.net] chrome extension作ってまして background - popup -contentscript間のデータのやり取りがjson経由でしかできなかったので。
526 名前:デフォルトの名無しさん mailto:sage [2016/11/01(火) 01:26:11.04 ID:R4cGftBs.net] 永続化や通信でシリアライズが必要ならまず構成と通信内容を決めて 実装可能であることを確認してから個々の実装に入るべきだった 行きあたりばったりで通信が必要なデータやコマンドが噴出してるだろうから 個別機能に逃げずに先にそこを設計しろ
527 名前:デフォルトの名無しさん mailto:sage [2016/11/01(火) 03:17:05.88 ID:ZbjdSYd3.net] >>501 普通にobjectを渡せるんじゃないか?
528 名前:デフォルトの名無しさん mailto:sage [2016/11/09(水) 22:55:56.80 ID:w82iFkDp.net] React Componentを相対パスでimportするのはもう嫌なので、絶対パスでimportしてやる qiita.com/endam/items/49696abedb68878d8b01 コレいいなって思ったんですがTypeScriptで絶対パス指定する方法って標準であったりしないですかね?
529 名前:デフォルトの名無しさん mailto:sage [2016/11/10(木) 00:57:52.66 ID:+mabk82N.net] 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/
530 名前:デフォルトの名無しさん mailto:sage [2016/11/10(木) 03:11:40.39 ID:XJYCbDSV.net] モジュール周りはここに書いてあるようだ。 https://www.typescriptlang.org/docs/handbook/module-resolution.html
531 名前:デフォルトの名無しさん [2016/11/12(土) 00:03:42.69 ID:0EI9e+TE.net] >>505 TypeScript 2.1.1 変更点 qiita.com/vvakame/items/305749d3d6dc6bf877c6
532 名前:デフォルトの名無しさん [2016/11/16(水) 13:26:15.81 ID:VglaLP8t.net] bucklescript ω
533 名前:デフォルトの名無しさん mailto:sage [2016/11/20(日) 01:23:41.33 ID:PZEuAd0p.net] みんなエディタは何使ってるの? VisualStudio以外にいいエディタある?
534 名前:デフォルトの名無しさん mailto:sage [2016/11/20(日) 08:29:21.81 ID:p95gh/Vn.net] vscode
535 名前:デフォルトの名無しさん mailto:sage [2016/11/20(日) 09:20:47.29 ID:mNZMIvsS.net] vim
536 名前:デフォルトの名無しさん mailto:sage [2016/11/20(日) 09:40:13.46 ID:0ByPx+DX.net] Emacs www.typescriptlang.org/ の下の方にEmacsのTypeScript開発環境へのリンク
537 名前:がある。メソッド補完とかリファクタリングとか全部出来る [] [ここ壊れてます]
538 名前:デフォルトの名無しさん mailto:sage [2016/11/20(日) 16:06:26.39 ID:rN9nZaoB.net] >>509 ALM alm.tools/ 好きが高じてエディタまで作ってしまった例
539 名前:デフォルトの名無しさん mailto:sage [2016/11/20(日) 17:44:23.07 ID:Y8tBh63Q.net] >>513 +1
540 名前:デフォルトの名無しさん mailto:sage [2016/11/24(木) 16:16:50.02 ID:Kbd9UGgc.net] ALM 使ってみたけど、JIS キーボードで CTRL+¥ が効かなくてツリービューが出ない… ファイル操作はツリービューでやるんだよね?
541 名前:デフォルトの名無しさん mailto:sage [2016/11/25(金) 11:07:12.84 ID:lg4MxwBZ.net] >>513 本家のプレイグラウンドも楽しいけど、ちょっと他のライブラリとか合わせられるようなのもほしい。 こういうのと組み合わせて作ってくんないかなー。
542 名前:デフォルトの名無しさん mailto:sage [2016/12/01(木) 23:31:35.77 ID:V3pVktwk.net] TypeScript Advent Calendar 2016 qiita.com/advent-calendar/2016/typescript (今年も)やっちまった感
543 名前:デフォルトの名無しさん mailto:sage [2016/12/02(金) 15:42:21.41 ID:ocojT6FV.net] 需要なしか
544 名前:デフォルトの名無しさん mailto:sage [2016/12/02(金) 21:48:15.76 ID:i9Hqboy9.net] 12月突入数時間前まで誰も立てなかったしそりゃね
545 名前:デフォルトの名無しさん mailto:sage [2016/12/03(土) 16:07:27.97 ID:iU+ignEA.net] いつも納期を守らないひとですねわかります
546 名前:デフォルトの名無しさん mailto:sage [2016/12/03(土) 22:27:39.83 ID:W5YxFMDl.net] TypeScript 2.1のkeyofとかMapped typesがアツい qiita.com/Quramy/items/e27a7756170d06bef22a そろそろ2.1正式版来る気配
547 名前:デフォルトの名無しさん mailto:sage [2016/12/05(月) 08:39:36.02 ID:vZnFdVec.net] 人気ないでしょ。
548 名前:デフォルトの名無しさん mailto:sage [2016/12/05(月) 09:21:11.08 ID:nuFcVUYF.net] 英語圏はどうなのよ
549 名前:デフォルトの名無しさん mailto:sage [2016/12/05(月) 16:49:11.01 ID:5hp1IXjD.net] >>521 パスやファイル名に日本語が有ると エラーする問題はこれで直るのか?
550 名前:デフォルトの名無しさん mailto:sage [2016/12/05(月) 17:57:33.20 ID:dF177W8B.net] >>519 Tcl/Tkの誰か立ててよ
551 名前:デフォルトの名無しさん mailto:sage [2016/12/08(木) 07:43:57.58 ID:sRPpwh3/.net] https://blogs.msdn.microsoft.com/typescript/2016/12/07/announcing-typescript-2-1/ 「...」系の構文が増えるといいなぁ 最近のC++に追加された構文が便利だから
552 名前:デフォルトの名無しさん mailto:sage [2016/12/08(木) 14:41:29.32 ID:K4A6J/m6.net] しかしkeyofとかTypeScriptスゲーな 型言語としてやれる事はとことんやろうという方針なんだな keyofは既存のJavaScriptコードと連携する時にコーディングミスをコンパイル時に分かるようになるって事かな TypeScriptオンリーの時は多分使いそうにないけど、何か使いどころがあるんだろうか?
553 名前:デフォルトの名無しさん mailto:sage [2016/12/08(木) 14:49:41.32 ID:K4A6J/m6.net] と思ったらMapped Typesでkeyofが必要だったんだな。納得した。 Mapped Typesは使いどころを模索中…
554 名前:デフォルトの名無しさん mailto:sage [2016/12/08(木) 23:29:45.09 ID:/aGxLpEu.net] ちょっと手段が目的化してる感が否めないなあ 最初からTypeScript前提で作ったモジュールを使う分にはkeyofが必要な状況はそう無いだろうし、 既存のJSライブラリのインターフェース書くための機能だと割り切るんだったら そこまで厳格にDRYに拘る必要もないように思うが
555 名前:デフォルトの名無しさん mailto:sage [2016/12/09(金) 08:58:45.48 ID:zMqsgGKG.net] ・interface を readonly の有無で2回書かなくて良い ・エレメントに設定する一連の属性をオブジェクトで渡す際の型安全 ぱっと思いつくだけでも悪くない機能だと思うけど
556 名前:デフォルトの名無しさん mailto:sage [2016/12/10(土) 08:55:22.73 ID:ZQIWZdV9.net] classのコンストラクタを定義する場合、もしメンバ変数が20個あるとすると、 コンストラクタにも20個の引数を並べて、 constructor(arg1, arg2, ......, arg20){ this.parm1 = arg1; this.parm2 = arg2; this.parm3 = arg3; .. } のようにする必要がありますか? もう少し簡素に書けませんか?
557 名前:デフォルトの名無しさん mailto:sage [2016/12/10(土) 10:13:56.45 ID:yQhPHczS.net] constructor(public parm1, private parm2) {
558 名前:デフォルトの名無しさん mailto:sage [2016/12/10(土) 13:08:54.64 ID:ZQIWZdV9.net] >>532 そんな技が有ったのですか! ありがとうございました。
559 名前:デフォルトの名無しさん mailto:sage [2016/12/16(金) 22:23:17.99 ID:Za7bRyyh.net] 型システムがチューリング完全になっててもおかしくないな たしか scala と c++ は達成してた筈
560 名前:デフォルトの名無しさん mailto:sage [2016/12/16(金) 22:39:54.50 ID:lf6NCS1E.net] C++はtemplateでしょ template引数の扱いがほぼ帰納関数の定義みたいなもんだしな
561 名前:デフォルトの名無しさん mailto:sage [2016/12/16(金) 22:40:27.11 ID:oD0nT6zl.net] TypeScriptの型はあくまで検査専用でメタプログラミングには使えないから無理じゃない?
562 名前:デフォルトの名無しさん mailto:sage [2016/12/16(金) 23:19:39.50 ID:hVjcwv5q.net] C++のテンプレートがチューリング完全だとしても文字列のハッシュ値は計算出来ない なぜならC++の文字列はポインタでしかないけどコンパイル前に参照する事が出来ないから それでもチューリング完全なのは間違いないけど、別にチューリング完全だからってなんでも出来るわけじゃないってことだな
563 名前:デフォルトの名無しさん mailto:sage [2016/12/16(金) 23:21:43.20 ID:hVjcwv5q.net] ちなみに文字列じゃなくて文字の配列にすれば問題ない const char* str = "hoge";じゃなくて const char str[] = { 'h', 'o', 'g', 'e' };ってこと
564 名前:デフォルトの名無しさん mailto:sage [2016/12/16(金) 23:24:42.09 ID:hVjcwv5q.net] 間違えた… const char str[] = { 'h', 'o', 'g', 'e', '\0' }; だった 連投ごめんなさい
565 名前:デフォルトの名無しさん mailto:sage [2016/12/16(金) 23:29:20.71 ID:lf6NCS1E.net] ゲーデル「そこはゲーデル数で…」
566 名前:デフォルトの名無しさん mailto:sage [2016/12/16(金) 23:34:58.93 ID:ZvALx4tK.net] ゲーデルはホント天才だよな 紙と手廻し計算機しかない時代に 「符号化すれば数式だろうが証明図だろうが数で表せるし 数の計算が数式処理や証明じゃん」なんて
567 名前:デフォルトの名無しさん mailto:sage [2016/12/17(土) 17:02:33.38 ID:a9hyyPvt.net] むしろその世代だったからよかったのかも
568 名前:デフォルトの名無しさん [2016/12/18(日) 15:38:22.61 ID:6QPg4rBj.net] TypeScript 2.0.8でちょっとお尋ね ~~~~file1.ts namespace TestNS { export interface TestInterface {} } ~~~~ ~~~~file2.ts /// <reference path="file1.ts" /> import * as Lib from "〜"; ← こいつがいると下のTestInterfaceでTS:2304 Cannot find nameが出る(コメントアウトすれば出ない) namespace TestNS { export class Test implements TestInterface {} } ~~~~ 上に書いた通りimport文がいるとTestInterfaceでTS:2304 Cannot find name 'TestInterface'になるんだけれども, これってどう理解したらよい? import文の有無で見つからなくなるのはとても不思議な感があるんだけど
569 名前:デフォルトの名無しさん mailto:sage [2016/12/18(日) 15:52:58.94 ID:gkl2dVgP.net] 内部モジュール形式と外部があって内部だとネームスペースはすべて同じものとしてマージされるから参照できる 内部ゴミだから外部覚えろ
570 名前:デフォルトの名無しさん mailto:sage [2016/12/19(月) 20:40:04.16 ID:tHwvluTB.net] reference pathは使わないことを勧める 型定義ファイルの参照はreference typesや--types 連結するなら目的別にプロジェクトを分けて--outFile
571 名前:543 mailto:sage [2016/12/19(月) 23:08:19.83 ID:WEeYyWf0.net] 結局外部モジュール化して解決しました 細かいことは組んでからコンパイル済みソース見て考えることにします
572 名前:デフォルトの名無しさん mailto:sage [2017/01/19(木) 09:39:46.00 ID:uhfgjGGl.net] https://chrome.google.com/webstore/detail/%E3%81%AF%E3%81%A6%E3%81%AAng/mbgdnfmdelffjdhkdggilmphfdihnmcj?hl=ja
573 名前:デフォルトの名無しさん mailto:sage [2017/02/03(金) 10:13:11.49 ID:ppyFFvug.net] TypeScript 2.2 https://blogs.msdn.microsoft.com/typescript/2017/02/02/announcing-typescript-2-2-rc/ ・object type - "non-primitive"を表す型 ・mixins and composable classes - 無名クラスを返す関数のサポート
574 名前:デフォルトの名無しさん mailto:sage [2017/02/03(金) 11:53:48.71 ID:OZdxyk8U.net] >>548 rcかあ 入れるのはやめとくわ
575 名前:デフォルトの名無しさん mailto:sage [2017/02/13(月) 21:38:00.71 ID:g48+zfGw.net] typescript版のjsFiddleみたいなのないですかね?
576 名前:デフォルトの名無しさん [2017/02/13(月) 21:52:46.81 ID:XAOuYKtl.net] >>550 https://jsfiddle.net typescript選べるんだけど、何がお望み?
577 名前:デフォルトの名無しさん mailto:sage [2017/02/14(火) 08:03:16.30 ID:06xiI2rQ.net] >>551 補完が効かないとtypescriptの意味ないよね。
578 名前:デフォルトの名無しさん mailto:sage [2017/02/14(火) 22:01:13.41 ID:PJNUS5QV.net] なぜ TypeScript の型システムが健全性を諦めているか qiita.com/na-o-ys/items/aa56d678cdf0de2bdd79
579 名前:デフォルトの名無しさん mailto:sage [2017/02/15(水) 11:35:44.90 ID:Uv6dN9fe.net] typescriptでvue.js使ってる人っています? どんな感じか聞いてもいいですか? vueファイルのscriptにtypescriptを使った場合にVisualStudioCodeから補完聞かせる方法ってあるんですかね?
580 名前:デフォルトの名無しさん mailto:sage [2017/02/15(水) 13:37:43.12 ID:0zPxl8zN.net] いいよ あるよ
581 名前:デフォルトの名無しさん mailto:sage [2017/02/16(木) 14:34:53.75 ID:I/Biy33K.net] typescript ってclassの中でclassは定義できないの?
582 名前:デフォルトの名無しさん mailto:sage [2017/02/16(木) 16:54:40.22 ID:H/kSQGez.net] >>556 innerClass = class { ... } の構文を使ってみては?
583 名前:デフォルトの名無しさん mailto:sage [2017/02/16(木) 18:23:19.49 ID:I/Biy33K.net] >>557 さんきゅう。 その後、自分でも調べてそういう構文を見付けたのだが、 なぜ一般的な言語のようにclassをネスト出来ないのかな?
584 名前:デフォルトの名無しさん mailto:sage [2017/02/17(金) 10:02:26.32 ID:XBlUtmng.net] 構造的にESにないものは採用されないんじゃなかろうか 俺もprivate static Inner = class {...で試したけどあまり使えなさそうだからやめた
585 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 21:12:34.52 ID:sjM/LKuB.net] Announcing TypeScript 2.2 https://blogs.msdn.microsoft.com/typescript/2017/02/22/announcing-typescript-2-2/ TypeScript 2.2.1 変更点 qiita.com/vvakame/items/eb6c054360868b88f9b1
586 名前:デフォルトの名無しさん [2017/02/26(日) 21:26:09.95 ID:6xiviMi3d] Angular2に関する質問で、専用スレッドみたいなものが見つからなかったのここで質問させてください。 Angluar2でWebSocketをしようしたファイルをつくっているのですが、 ngOnInit内のws.onmessageの中で Component直下のグローバル変数に値をいれた後 他のComponent直下の関数内で 値が書き換えられていない(初期値があれば初期値、なければundefined)ということが起きています。 onmessage内ではonmessage内でしか書き換えた値が使えないなんていうことがあるのでしょうか。 必要であればコードはります。 Angular初心者でTypeScriptに関しても理解が浅いため だれかお力添えお願いします。
587 名前:デフォルトの名無しさん mailto:sage [2017/03/19(日) 00:28:00.75 ID:zrbJr/YL.net] Chrome拡張機能を作ってる方結構いるみたいなので教えてほしいのですが 「chrome.〜〜〜」のAPIが「Supplied parameters do not match any signature of call target.」とコンパイルエラーになります 「/// <reference path="./node_modules/@types/chrome/index.d.ts" />」でd.tsは指定しているのですが、他にも何か記述が必要ですか?
588 名前:デフォルトの名無しさん mailto:sage [2017/03/19(日) 02:18:51.51 ID:9qStAS/N.net] >>562 そもそも今は/// <reference path=みたいな書き方はしない。 @types/XX npm install すれば使えるはず。
589 名前:デフォルトの名無しさん mailto:sage [2017/03/19(日) 02:40:46.59 ID:/2pY/ZTT.net] インストしても明示的なインポートなしには使えんよ
590 名前:デフォルトの名無しさん mailto:sage [2017/03/19(日) 03:16:06.29 ID:TMN19OY5.net] >>562 エラーしてる部分のソース貼るといいよ
591 名前:561 mailto:sage [2017/03/19(日) 11:24:02.73 ID:zrbJr/YL.net] 皆様ありがとうございます…解決しました…chrome.〜〜に引数が設定されてなくてエラーになるという超凡ミスでした… エラーメッセージの意味をきちんと理解しないといけないですね… --- コンパイルエラー ---------------------------------------------------------- if (window.location.href.indexOf('aaa.com') !== -1) { chrome.pageAction.onClicked.addListener(); } ------------------------------------------------------------------------------ --- コンパイル正常 ----------------------------------------------------------- if (window.location.href.indexOf('aaa.com') !== -1) { chrome.pageAction.onClicked.addListener(() => { }); } ------------------------------------------------------------------------------ あと、仰る通り<reference path= />なくてもコンパイル通りました 皆様お騒がせしました
592 名前:デフォルトの名無しさん mailto:sage [2017/03/19(日) 13:25:11.81 ID:9qStAS/N.net] >>566 エディター何使ってんの? typescriptなら書いてるそばから検出できるエラーじゃないのか?
593 名前:デフォルトの名無しさん [2017/03/28(火) 10:03:39.39 ID:r9lg9pov.net] ターゲットにWebAssemblyを追加する計画とか無いのかな
594 名前:デフォルトの名無しさん mailto:sage [2017/03/28(火) 14:44:15.57 ID:3EkUFmFA.net] interfaceの定義でArrayの要素が2つしかない場合の定義の仕方ってあるかな interface Pair { number[2] } interface Data { pairs :Pair[] } みたいな感じで定義できないもんか。 諦めてnumber[]にするしかない?
595 名前:デフォルトの名無しさん mailto:sage [2017/03/28(火) 14:54:23.37 ID:OG3qmdJs.net] タプル使え
596 名前:デフォルトの名無しさん mailto:sage [2017/03/28(火) 17:30:18.19 ID:3EkUFmFA.net] >>570 thanks type Pair = [number,number] interface Data { pairs :Pair[] }
597 名前:デフォルトの名無しさん mailto:sage [2017/03/30(木) 23:49:26.09 ID:Ya8jf9nB.net] index.htmlに直接CDNからreactとreact-domを読み込んで npmからは@types/reactと@types/react-domをインストールし tsxファイルからimport文を使わずにreactを使ったところ何の問題もなく動いた。 plotly.jsを同じように使おうとしたら自動では定義ファイルを読んでくれない。 この違いは一体何なのか? と思って定義ファイルを見たところreactとreact-domには以下のような記載がある export as namespace ReactDOM; export as namespace React; 上記を真似て定義ファイルに export as namespace Plotly; を追加したら同じ挙動になった。 export as namespace XXX ってなんすか?
598 名前:デフォルトの名無しさん mailto:sage [2017/03/31(金) 01:47:51.53 ID:y+1gOmlP.net] そのモジュールのグローバル変数化宣言 公式wiki嫁
599 名前:デフォルトの名無しさん mailto:sage [2017/04/01(土) 20:31:37.83 ID:es45r1Ne.net] 型定義ファイルの書き方がよくわからなくてつんでいます node-transmission https://github.com/FLYBYME/node-transmission の型定義ファイルが見当たらないので作っているんですが もとのjsファイルのexport宣言が var Transmission = module.exports = function (options) { ってなっている場合に型定義ファイルとして以下のように書いても認識されないです。 declare interface transOptions { port: number host: string } declare class Transmission { constructor(optins: transOptions) } export default Transmission 使う場合に import * as Transmission from "transmission"; var transmission = new Transmission({ port : 9091, host : '127.0.0.1' }); って書いてもtransmission はany型のようです。 どう書くのが正解でしょうか?
600 名前:デフォルトの名無しさん mailto:sage [2017/04/01(土) 22:04:14.42 ID:es45r1Ne.net] >>574 すいません。自己解決しました。 JSのモジュールまじしんどい
601 名前:デフォルトの名無しさん mailto:sage [2017/04/09(日) 14:34:29.06 ID:ZBMiMXkM.net] >>41 partial classは不採用になったので一応 Suggestion Backlog Slog, 4/3/2017 https://github.com/Microsoft/TypeScript/issues/14990 https://github.com/Microsoft/TypeScript/issues/563#issuecomment-291300044
602 名前:デフォルトの名無しさん mailto:sage [2017/04/10(月) 14:18:00.18 ID:BK5DCjs2.net] G
603 名前:oogle社内の標準言語としてTypeScriptが承認される。ng-conf 2017 http://www.publickey1.jp/blog/17/googletypescriptng-conf_2017.html [] [ここ壊れてます]
604 名前:デフォルトの名無しさん mailto:sage [2017/04/10(月) 18:26:24.79 ID:VEGABUso.net] >>577 Dartどうすんだよ
605 名前:デフォルトの名無しさん mailto:sage [2017/04/10(月) 20:28:20.75 ID:kMiVc4KU.net] 劣るうえ、使われてないdartは自動消滅。 ホントはわかってたこと。
606 名前:デフォルトの名無しさん mailto:sage [2017/04/11(火) 02:02:21.52 ID:Kcnbnd8w.net] typescriptでreduxの実装書くのしんどいね qiita.com/wadahiro/items/7c421b668f28a99e2a29 こいつを参考に書いてるけど。他にいい書き方があれば
607 名前:デフォルトの名無しさん mailto:sage [2017/04/11(火) 07:02:04.43 ID:OeT6CnRN.net] >>580 おまおれ mapStateToPropsとかの引数も型どうしていいか分からん
608 名前:デフォルトの名無しさん mailto:sage [2017/04/11(火) 17:04:01.31 ID:ejHOB/DU.net] >>580 こんなの誰が何に使うの?
609 名前:デフォルトの名無しさん mailto:sage [2017/04/11(火) 19:22:39.80 ID:+8we66Ry.net] ほんそれ
610 名前:デフォルトの名無しさん mailto:sage [2017/04/11(火) 22:09:52.06 ID:rpuwd/d9.net] TypeScriptでreact-router-reduxに手を出したら大変な目に遭った。
611 名前:デフォルトの名無しさん mailto:sage [2017/04/11(火) 22:24:37.23 ID:YJpuA+WP.net] 単語が3つ以上入ってるパッケージに近寄りたくない
612 名前:デフォルトの名無しさん [2017/04/12(水) 19:01:00.44 ID:BxTB0mZM.net] >>577 ,578 もうjavaやめてtypescriptでandroidアプリ開発できるようにしてほしい。 でも本心はdart頑張れ。
613 名前:デフォルトの名無しさん [2017/04/12(水) 19:19:27.95 ID:usx2Dq45.net] そういうフレームワーク色々あるやん
614 名前:デフォルトの名無しさん mailto:sage [2017/04/12(水) 20:26:06.76 ID:IsZRv2xh.net] >>580 これの2.0/2.1用ってのをやってみたら#defineが欲しくなった。 ストリングリテラルを置き換えられるマクロみたいなものってないのかな?
615 名前:デフォルトの名無しさん [2017/04/12(水) 20:47:03.00 ID:usx2Dq45.net] >>588 何が欲しいのかよく解らんが const ABC=”str” じゃあかんのか?
616 名前:デフォルトの名無しさん mailto:sage [2017/04/12(水) 20:56:38.51 ID:IsZRv2xh.net] そのABCはストリングリテラル型には使えんわけよ。
617 名前:デフォルトの名無しさん mailto:sage [2017/04/12(水) 21:04:32.60 ID:WRJ4LE6o.net] redux の冗長な書き方をtypescriptの機能でなんとかしてほしいってことなんだろうけど。 react見たくpropsをinterface定義すれば大体いい感じで使える。みたいにredux の方もstateのinterface定義だけでいい感じに出来上がるような仕組みがほしい。
618 名前:デフォルトの名無しさん mailto:sage [2017/04/12(水) 21:05:36.55 ID:WRJ4LE6o.net] >>586 つreact native
619 名前:デフォルトの名無しさん [2017/04/12(水) 22:41:00.77 ID:mYXXp/Z3.net] >>590 const ABC:"str" = "str"; こういうことか
620 名前:デフォルトの名無しさん mailto:sage [2017/04/12(水) 23:07:35.91 ID:IsZRv2xh.net] それ。 strが短いならそのまま書いても一緒だけど、actionのtypeって長くなりがちだから 二重に書くのがつらい。
621 名前:デフォルトの名無しさん mailto:sage [2017/04/12(水) 23:08:47.06 ID:0/0fFwi6.net] >>578 TypeScriptが標準言語になっても、Dartのことは忘れてませんよとGoogle担当者がフォロー www.publickey1.jp/blog/17/typescriptdartgoogle.html
622 名前:デフォルトの名無しさん mailto:sage [2017/04/12(水) 23:50:07.42 ID:29ufoOq3.net] constは型書かなくてもストリングリテラルに推論されるようになったんだが存知ない?
623 名前:デフォルトの名無しさん [2017/04/13(木) 00:12:31.67 ID:IFJ42qsr.net] 2.1からだね。2.0でも使ってたんだろうか
624 名前:デフォルトの名無しさん mailto:sage [2017/04/13(木) 00:19:44.83 ID:rVYtPk7E.net] ストリングリテラルに推論されるって? これ通らないでしょ? const STR = "str"; const ABC: STR = STR;
625 名前:デフォルトの名無しさん [2017/04/13(木) 00:27:33.33 ID:IFJ42qsr.net] >>598 そりゃ二行目がストリングリテラルじゃないからね
626 名前:デフォルトの名無しさん mailto:sage [2017/04/13(木) 00:33:01.65 ID:rVYtPk7E.net] だからそれが書けないから>>594 だってことだろ。 結局>>596 は何の話をしてたんだ?
627 名前:デフォルトの名無しさん [2017/04/13(木) 00:34:18.77 ID:IFJ42qsr.net] なにがやりたいのかよく解らんが const STR = "str"; const ABC1 = STR; const ABC2:”str” = ABC1; type STRT=”str”; const ABC3:STRT=STR; 全部通るよ
628 名前:デフォルトの名無しさん mailto:sage [2017/04/13(木) 00:39:19.82 ID:7ydi5nIB.net] >>600 エラーメッセージも読めない奴がずいぶんと偉そうだな ドキュメント100回読み直してこい
629 名前:デフォルトの名無しさん mailto:sage [2017/04/13(木) 00:40:44.33 ID:rVYtPk7E.net] >>601 やりたいのはそこで言うSTRTとSTRの共通化。 要は同じ"str"を重複して書きたくないってこと。
630 名前:デフォルトの名無しさん mailto:sage [2017/04/13(木) 00:44:07.45 ID:7ydi5nIB.net] 変数の型の参照なんて初歩の初歩なんだが教えてやるまい
631 名前:デフォルトの名無しさん [2017/04/13(木) 01:00:49.62 ID:IFJ42qsr.net] >>603 えっ 普通推論させるから書かないでしょ わざわざ書かなきゃならなくなるケースってどんな時よ
632 名前:デフォルトの名無しさん mailto:sage [2017/04/13(木) 01:13:36.05 ID:rVYtPk7E.net] const STR = "str"; type STRT = "str"; const ABC3: STRT=STR; "str"を2回書かずにABC3が作れればそれでいいんだけど。
633 名前:デフォルトの名無しさん [2017/04/13(木) 01:20:51.05 ID:IFJ42qsr.net] >>606 const STR = "str"; const ABC3 = STR;
634 名前:デフォルトの名無しさん mailto:sage [2017/04/13(木) 06:09:08.50 ID:32cPtkAw.net] type STRT = typeof STR
635 名前:デフォルトの名無しさん mailto:sage [2017/04/13(木) 08:01:19.65 ID:rVYtPk7E.net] すまん、確かに思い違いしていたようだ。ありがとう。
636 名前:デフォルトの名無しさん mailto:sage [2017/04/13(木) 13:00:24.68 ID:XE18llYI.net] 恥ずかしか
637 名前:デフォルトの名無しさん [2017/04/13(木) 20:33:25.78 ID:IFJ42qsr.net] 認めて謝って感謝してるだけ立派だよ
638 名前:デフォルトの名無しさん mailto:sage [2017/04/16(日) 20:56:40.61 ID:nOhMz2bP.net] TypeScriptでExpressを使う場合について教えてください。 express-generatorなどのサンプルコードだと new Error したオブジェクトにstatusを 突っ込んで返していたりしますが、ここ、TypeScript的にはどうするのが普通でしょう? みなさん自前でErrorのサブクラスを定義しているんでしょうか?あるいはどこかに 定番のものがあったりするんでしょうか?
639 名前:デフォルトの名無しさん mailto:sage [2017/04/16(日) 22:51:14.41 ID:SqhlDt4o.net] 「どうでもいい」が普通じゃない? そんなもんエラーハンドラで受けて適当にトレースとエラーメッセージ出したら終わりなんだから 型なんぞ要らん 手段と目的を履き違えるな
640 名前:デフォルトの名無しさん mailto:sage [2017/04/16(日) 23:30:20.32 ID:R4TJTEcK.net] >>612 jsonとして扱えるようにインターフェース定義にしておいたほうが無難な気がする。 シリアライズしても簡単にもとに戻せるし。
641 名前:デフォルトの名無しさん mailto:sage [2017/04/17(月) 00:09:50.93 ID:CyuLkfZA.net] そういうもんですかね? エラーを表示するだけとは言ってもstatusは正しくセットしなきゃならないわけで、 TypeScriptを使う以上そこも型安全にやりたいってのは自然だと思うんですが。 そこだけtslintの警告をネグるのも気持ち悪いし。
642 名前:デフォルトの名無しさん [2017/04/17(月) 00:24:52.52 ID:GVmJ+xSa.net] アプリケーションの仕様としてエラー用のクラスを定義します。Errorのサブクラスだったり新規に自前のクラスを用意するかはケースバイケース。 当然途中で変わることもあり得ます。その際はきちんと他のメンバーと情報共有します。
643 名前:デフォルトの名無しさん mailto:sage [2017/04/17(月) 07:32:40.57 ID:k0Nquy2H.net] 自分は簡単なアプリではHttpErrorみたいなクラスを定義して使ってる。 もっと複雑なアプリだと、業務エラーのコードとHTTPのエラーコードで もう一階層作ったりもするけど。 だが、これが推奨なやり方なのかは分からん。俺も知りたい。
644 名前:デフォルトの名無しさん mailto:sage [2017/04/17(月) 08:40:01.39 ID:CyuLkfZA.net] ありがとうございます。 statusというプロパティにステータスを返すのは決まっているんだからどこかに 出来合いのものがあるかと思ったんですが、やっぱり自前なんですね。
645 名前:デフォルトの名無しさん mailto:sage [2017/04/20(木) 11:26:28.02 ID:T7Zz78Cb.net] npm linkを駆使してtypescriptでビジネスロジックを外部モジュールにしてるんだけど tsc -wで自動コンパイルはできるんだけど 定義ファイルも同時に生成するコマンドオプションってないかな?
646 名前:デフォルトの名無しさん mailto:sage [2017/04/20(木) 11:42:22.36 ID:T7Zz78Cb.net] >>619 すんません -w -dですね。ホント申し訳ない [] [ここ壊れてます]
648 名前:デフォルトの名無しさん mailto:sage [2017/04/21(金) 21:22:59.73 ID:Uj6lwvRH.net] TypeScriptで動的なキャストみたいなことってできるんでしょうか? // どこかで定義されたclass class X {} interface AX extends X { a: string; } func(x: X) { if ( xが a: string というプロパティを持っていれば ) { // ここではxをAXとして扱いたい } }
649 名前:デフォルトの名無しさん [2017/04/22(土) 00:25:56.48 ID:NysYFg8M.net] >>621 let ax=<AX>x でキャスト出来る。 インターフェースが存在するかどうかはチェックはされないから注意。
650 名前:デフォルトの名無しさん mailto:sage [2017/04/22(土) 10:55:16.81 ID:scznilxz.net] >>622 ありがとうございました。うまくいきました。
651 名前:デフォルトの名無しさん mailto:sage [2017/04/26(水) 12:25:16.92 ID:mOputr8e.net] f8appのコード読んでんだけど flowって驚くほどtypeScriptと似てるね。 んでReduxのアクションな書き方が参考になる。 type ParseObject = Object; export type Action = { type: 'LOADED_ABOUT', list: Array<ParseObject> } | { type: 'LOADED_NOTIFICATIONS', list: Array<ParseObject> } | { type: 'LOADED_MAPS', list: Array<ParseObject> } コレ普通にtypeScriptでも使えた。 interface宣言だとこういう書き方できなけどtype宣言だとできんのね。
652 名前:デフォルトの名無しさん mailto:sage [2017/04/27(木) 14:10:54.61 ID:2oprloyo.net] いやーTypeScriptって本当にいいものですよね 恥ずかしいソース書いてもコンパイルすればそれなりの形になってますし 全ソースが1つにまとまったjsファイルを見るとカタルシスを覚えます javascriptを扱うのに最高の言語です
653 名前:デフォルトの名無しさん [2017/04/27(木) 16:28:37.55 ID:a+4IBLmk.net] 開発用と納品用でコードわけられるとかありがたい
654 名前:デフォルトの名無しさん mailto:sage [2017/04/27(木) 17:45:10.06 ID:/9P4GBtP.net] minifyが出来なくて悩んでおります。 Targetをes5にしてもエラーが出る。
655 名前:デフォルトの名無しさん mailto:sage [2017/04/28(金) 08:31:59.89 ID:IMlkcp1b.net] >>627 結局該当箇所っぽいところの構造を変えて解決した case 'Text': { let text: Text; /* ごちゃごちゃした処理*/ text = { type: 'Text', value: node.value, cache: nodeCache }; return text; } ってなってるところで なぜがtextという変数がminifyで消えずに残っていてエラーになっていたところ case 'Text': { // let text: Text; <―削除 /* ごちゃごちゃした処理*/ let text:Text = { type: 'Text', value: node.value, cache: nodeCache }; return text; } ってしたら治った。
656 名前:デフォルトの名無しさん mailto:sage [2017/04/28(金) 09:00:40.63 ID:IMlkcp1b.net] すいませんminifyの件ですが一番の問題は 外部ライブラリとして別にパッケージを作ってnpm linkしていたんですが その外部ライブラリのtsconfigの設定でtargetをes2015にしていたのが原因のようです。 npm上で公開してるライブラリってes2015のものとes5のものが混ざってるんですかね?もしそうならminifyのとき問題でそう。 そろそろブラウザもes2015に対応してきたし外部ライブラリもes2015でいいんじゃないかと思いましたがまだまだes5のほうがいいんですかねー
657 名前:デフォルトの名無しさん mailto:sage [2017/04/28(金) 15:19:33.29 ID:ZmVIrkLy.net] Announcing TypeScript 2.3 https://blogs.msdn.microsoft.com/typescript/2017/04/27/announcing-typescript-2-3/
658 名前:デフォルトの名無しさん mailto:sage [2017/04/28(金) 21:52:24.09 ID:CfPEmNk9.net] >>629 ちゃんと設定すれば、TypeScriptが変換してくれるんじゃないの?
659 名前:デフォルトの名無しさん mailto:sage [2017/04/29(土) 00:20:26.49 ID:Ix6JNrOr.net] >>631 targetをes5にしてlibに”dom”と”es2017”を設定したら ちゃんとminifyもできつつasync await とかobject.assaignとか使えました。 typescriptの問題というよりuglify-jsの問題ってことすね。
660 名前:デフォルトの名無しさん mailto:sage [2017/04/29(土) 08:40:51.51 ID:fFSdol5k.net] >>630 ギャー!! 適用したらエラーだら
661 名前:ッになった!! [] [ここ壊れてます]
662 名前:デフォルトの名無しさん mailto:sage [2017/04/29(土) 09:01:35.78 ID:fFSdol5k.net] アンインストールしたらVSでtsファイル開いても識別子の色分けとかインテリセンスが出てこなくなってVSぶっ壊れたわ 再インストールだなこりゃ
663 名前:デフォルトの名無しさん mailto:sage [2017/04/29(土) 09:05:24.76 ID:fFSdol5k.net] 2.3アンインストール後に再度2.3インストールしてもぶっ壊れたまま 迂闊に入れないほうがいいなこれ
664 名前:デフォルトの名無しさん [2017/04/29(土) 14:53:43.74 ID:D/W8thCK.net] 馬鹿には無理
665 名前:デフォルトの名無しさん mailto:sage [2017/04/30(日) 09:24:14.29 ID:V5NYhrdd.net] 不細工ハゲが偉そうに
666 名前:デフォルトの名無しさん mailto:sage [2017/04/30(日) 11:46:36.73 ID:A3RU6CWl.net] 不細工じゃねーし!
667 名前:デフォルトの名無しさん mailto:sage [2017/04/30(日) 12:00:27.54 ID:0Jw8BHIT.net] 相対パスでimportしようとすると from ’../../lib/a’ と書くことが多いのですが ..を何とかしようと思いtsconfigでbaseUrlを設定したところ from ‘lib/a’とかけるようになって素敵だったんですが 生成したjs側で同じように相対パスを使わない方法にできずjs側からimportできなくなりました。 どうすればいいんですかね
668 名前:デフォルトの名無しさん mailto:sage [2017/04/30(日) 12:07:35.75 ID:VPr4LyhY.net] deployしてみ
669 名前:デフォルトの名無しさん mailto:sage [2017/04/30(日) 13:53:10.60 ID:bwYTEyCy.net] おい、>>638 に突っ込めよ!
670 名前:デフォルトの名無しさん mailto:sage [2017/04/30(日) 14:18:46.56 ID:uAfPQWLU.net] ハゲに付ける薬なし
671 名前:デフォルトの名無しさん mailto:sage [2017/05/01(月) 13:56:45.49 ID:1hc/XS6U.net] jsonのデシリアライズ等で得られた任意のオブジェクトが指定のinterfaceに適合するかどうか 簡単に判定する方法ってないでしょうか? 実行コストがかかるのはしょうがないので、npmのライブラリでもあれば助かります。
672 名前:デフォルトの名無しさん mailto:sage [2017/05/01(月) 14:12:45.68 ID:y6q+iQAV.net] 実行時に型情報は取得できないので無理
673 名前:デフォルトの名無しさん mailto:sage [2017/05/01(月) 14:56:45.23 ID:dX7m944z.net] >>643 俺は各interfaceの定義にtypeを入れてる。
674 名前:デフォルトの名無しさん mailto:sage [2017/05/01(月) 15:43:26.17 ID:FD8bdV22.net] >>643 あーなるほどtypesciptのinterface要件を満たしてるかチェックするライブラリかー。 interfaceに対するメタプログラミングができる仕組みってtypescript側に用意されてんのかな
675 名前:デフォルトの名無しさん mailto:sage [2017/05/01(月) 16:42:03.86 ID:y6q+iQAV.net] ランゲージサービスから情報引っ張ってコード生成するまでやればできる
676 名前:デフォルトの名無しさん mailto:sage [2017/05/01(月) 18:22:52.40 ID:s/VndsAg.net] >>643 初心者なんで教えて欲しいんですが どう言う状況でそう言うのが必要に なるんですか?
677 名前:デフォルトの名無しさん mailto:sage [2017/05/01(月) 22:27:57.85 ID:1hc/XS6U.net] >>644-648 回答ありがとうございます。 外部から入手したany型のオブジェクトに対して、一度型チェックしたらTypeGuardの下で 扱えたら便利だと思ったんですが、そう単純なものはなさそうですね。 interface毎にUser-Defined Type Guard Functionてのを用意するのが今のところ いちばんシンプルですかね。
678 名前:デフォルトの名無しさん mailto:sage [2017/05/01(月) 23:04:54.13 ID:FD8bdV22.net] >>647 interfaceをparseするの簡単にできたわ ジェネレータは作れそう。後はObjectを チェックするコードをかければ、、、 そっちがよくわかんないな。
679 名前:デフォルトの名無しさん mailto:sage [2017/05/02(火) 00:15:01.17 ID:79+IkLPk.net] JSON限定でいいならJSON Schema生成するだけじゃね
680 名前:デフォルトの名無しさん mailto:sage [2017/05/05(金) 00:50:33.95 ID:oXL5lOIH.net] webpackでtypescript使う時にts-loaderがtypeRootsオプションを認識してくれないような。 自作の定義ファイルを読みに行ってくれない。 結局nodes_modules/@types/においたらうごくんだけど。なんだかなぁ
681 名前:デフォルトの名無しさん [2017/05/05(金) 10:24:07.07 ID:E/UcmmKD.net] -g
682 名前:デフォルトの名無しさん mailto:sage [2017/05/07(日) 12:47:49.44 ID:tRHTfDHo.net] redux のreducer書く時型付きじゃないと死ぬ。 素のjsでよく書ける人いるなぁ
683 名前:デフォルトの名無しさん mailto:sage [2017/05/10(水) 22:53:30.65 ID:TahTqR8d.net] >>651 これやってみようかと思ったけど、
684 名前:class定義からschema生成するか逆にschemaから生成するか、 どっちがいいか悩ましいなぁ。 [] [ここ壊れてます]
685 名前:デフォルトの名無しさん mailto:sage [2017/05/11(木) 06:23:41.84 ID:6GcWGmCe.net] JSON Schemaの方が表現力がずっと高いから、 実用的に意味があるのは後者だろうね 型だけなら全部空文字と0とfalseでもいいんだから
686 名前:デフォルトの名無しさん mailto:sage [2017/05/11(木) 06:40:52.39 ID:Uo4oHcSP.net] JSON Schemaからのdts生成は既存のツールがいくつかあるみたいだな 逆はバリデーションとしてはほぼ無意味かと
687 名前:デフォルトの名無しさん mailto:sage [2017/05/11(木) 21:37:19.65 ID:Foo76VTo.net] 目的が上で書いているようにシリアライズ-デシリアライズされたオブジェクトの型の復元なら、 interface定義を自分で書いてschemaは裏方というのが自然だとは思うが。 ただ、schemaを生成する方のツールは技術的にハードルが高いせいか選択肢があまりないな。
688 名前:デフォルトの名無しさん mailto:sage [2017/05/15(月) 21:27:32.04 ID:ZdTGw5ha.net] そもそもシリアライズという発想自体がJavaScript的でないと思うけどね データスキーマから入るのがJSでしょ
689 名前:デフォルトの名無しさん mailto:sage [2017/05/15(月) 22:43:08.64 ID:JDFIgPdx.net] シリアライズってJSONのこと言ってるわけだろ。 言語自体にサポートの無いC++などと比べてもよっぽど馴染みがあると思うが。 で、JavaScriptだとそこまででいいんだけど、TypeScriptで型まで戻すにはどうするか?って話だろ。
690 名前:デフォルトの名無しさん mailto:sage [2017/05/15(月) 23:00:01.30 ID:ZdTGw5ha.net] バリデーションとシリアライズが別系統なのは煩雑じゃない? コードだけで全部定義するならアノテーション使うなりしてJSON Schema相当の表現力は欲しいし、 割り切って別にするならシリアライズ系の方は中途半端なバリデーションなんかいっそ無しにて ノーチェックでいいと思うよ
691 名前:デフォルトの名無しさん mailto:sage [2017/05/15(月) 23:16:34.01 ID:JDFIgPdx.net] うん、上から目線で何か言いたいという気持ちだけは伝わった。
692 名前:デフォルトの名無しさん mailto:sage [2017/05/15(月) 23:59:53.11 ID:5dbS9yKw.net] stackoverflow.com/questions/33800497/check-if-an-object-implements-an-interface-at-runtime-with-typescript Yesの回答にそれっぽいコードがあるが本当に動作するのか疑問。 他はSchemaを使う回答だが、よほどでないと大袈裟な気も。
693 名前:デフォルトの名無しさん mailto:sage [2017/05/16(火) 00:46:18.76 ID:6a8gh5yc.net] 自分でコンパイラ拡張して実装したみたいだけどこういうの本家の更新についてけずに陳腐化するのが常だから使えない ついでにビルドツールなどのエコシステムも使えない
694 名前:デフォルトの名無しさん mailto:sage [2017/05/16(火) 07:36:06.00 ID:MR0lnxJG.net] 正攻法だとanyを受け取って目的の型のオブジェクトにして返す関数を用意することになるんだろうが、 やることは同じようなものなのにそれぞれ型ごとに個別に用意しなければならないのが煩雑だな。 よっぽど重要な型でしかやりたくない感じ。 確かにこれが、型ガードの感覚で気軽に使えるようになったら便利だと思うけど。
695 名前:デフォルトの名無しさん mailto:sage [2017/05/16(火) 08:02:09.48 ID:64KrDfHK.net] TypeScriptの思想的にもスキーマありきで型は後付けの方が自然だと思うわ
696 名前:デフォルトの名無しさん mailto:sage [2017/05/16(火) 08:27:24.80 ID:MR0lnxJG.net] その「スキーマ」が何を指しているかよくわからんな。 まさか「JSON schemaありき」って言いたいわけじゃないだろうが。
697 名前:デフォルトの名無しさん mailto:sage [2017/05/16(火) 09:01:29.19 ID:64KrDfHK.net] >>667 別に実装は何でもいいんじゃない? 先にJSONドキュメントそのものを設計しろってこと
698 名前:デフォルトの名無しさん mailto:sage [2017/05/16(火) 10:11:34.64 ID:Jgr59aIg.net] objectを先に設計してstringifyの方が一般的だと思うが。 つまりtsなら型が先。
699 名前:デフォルトの名無しさん mailto:sage [2017/05/16(火) 13:21:49.91 ID:xkpWN83w.net] jsonに対するinterface適用にわざわざスキーマ使うのはだるいな。 やはりメンバにtypeとかを事前に追加しておいて、そこを見てキャストさせるほうが楽だわ。
700 名前:もちろんそのjson自体が自分で改変可能である必要はあるが。 [] [ここ壊れてます]
701 名前:デフォルトの名無しさん mailto:sage [2017/05/16(火) 13:49:23.26 ID:6a8gh5yc.net] 言語がサポートしてるのはその使い方だからな
702 名前:デフォルトの名無しさん mailto:sage [2017/05/16(火) 14:24:04.58 ID:KRJlMJox.net] TypeScript ⇔ JSONSchema を相互に変換するコードは既に転がってるから どちらでも好みで原本にすれば良いんじゃないの? まぁあまり自動化を頑張っても、構造が複雑になると結局手書きが必要になる分野だとは思うけど
703 名前:デフォルトの名無しさん mailto:sage [2017/05/16(火) 14:48:54.41 ID:64KrDfHK.net] 型で記述しきれないバリデーションについてはDecoratorsを使うのがベストなんだろうけど、 interfaceには使えないんだよな まあJSONだけならそれでもいいかもしれないが
704 名前:デフォルトの名無しさん mailto:sage [2017/05/16(火) 15:28:34.19 ID:6a8gh5yc.net] リリースノートも見ずにオレオレソリューションひねり出すのやめない? https://github.com/Microsoft/TypeScript/wiki/What%27s-new-in-TypeScript#tagged-union-types
705 名前:デフォルトの名無しさん mailto:sage [2017/05/16(火) 15:33:13.80 ID:4P1sgrCm.net] interfaceがトランスパイル後に消滅しちゃうの辛いよな。 言語機能でいい感じに残す機能つけてほしいが、そういう提案ってないの? 最近ついたというプラグインで可能になる?
706 名前:デフォルトの名無しさん mailto:sage [2017/05/16(火) 15:42:38.42 ID:6a8gh5yc.net] >>663 で公式で却下されたと書いてある まあESの仕様壊すし残当
707 名前:デフォルトの名無しさん mailto:sage [2017/05/16(火) 15:48:01.77 ID:KRJlMJox.net] >>674 この文脈 (>>643 , 648) では、型フィールドを信用するのはノーチェックと同じ意味だぞ 外部からのデータが、内部的な制約を満たすことの保証を求めてる
708 名前:デフォルトの名無しさん mailto:sage [2017/05/16(火) 16:10:10.21 ID:6a8gh5yc.net] いや関数に隠蔽すれば壊すまではいかんか >>677 入力データの検査も値レベルの制約も手でやること 型システムに求めることじゃない 型を信じてノーチェックが型安全でありそうでなければオーバーヘッドで死ぬ 本人もタイプガードで満足してるしそれが正解
709 名前:デフォルトの名無しさん mailto:sage [2017/05/16(火) 17:11:36.85 ID:rTo/YyDO.net] >>676 まぁESの仕様+型だけだから学習コストが低いってのはあるしね。 でも直感的にinterface定義が消えちゃうのはなんだかなぁって気はする。 こうなったらES側に頑張ってもらうしかないな。パターンマッチング付けてー
710 名前:デフォルトの名無しさん mailto:sage [2017/05/29(月) 18:33:36.63 ID:DGY6L2yw.net] >>652 コレが解決した。 悩んでいつつも暫定対処で乗り切ってただけに小骨が喉に刺さっているような気分でしたわ。 結論としてはtypeRootsオプションは/// <reference types=".." /> を使う時のpath解決でしか使わないって。 ハンドブックをどう読んでもそう書いているように見えない。
711 名前:デフォルトの名無しさん mailto:sage [2017/06/02(金) 03:21:08.54 ID:0selKGQ0.net] typescriptでimmutablejs使ってるけどいまいち恩恵を得づらい。 updateInとかパスが補完効いたり出来ればいいのに
712 名前:デフォルトの名無しさん mailto:sage [2017/06/02(金) 08:57:46.98 ID:vyfZNbsR.net] thisを変数に入れたいときの変数名ってみんな何してる? _thisが使えればいいんだけどなー
713 名前:デフォルトの名無しさん mailto:sage [2017/06/02(金) 09:08:17.58 ID:Ef+/+PyI.net] 変数に入れた後のthisはthisなんですか・・・・?
714 名前:デフォルトの名無しさん mailto:sage [2017/06/02(金) 09:09:32.94 ID:lCCVb2h3.net] thatだがそもそもそんなこと必要にならない
715 名前:デフォルトの名無しさん mailto:sage [2017/06/02(金) 09:20:29.61 ID:8OnrstJc.net] JavaScriptのクロージャにおけるthis問題の回避はselfが定番 TypeScriptで必要なケースは少ないはずだけど
716 名前:デフォルトの名無しさん mailto:sage [2017/06/02(金) 09:43:18.53 ID:LceXbV2F.net] >>682 _thisはダメなの?
717 名前:デフォルトの名無しさん mailto:sage [2017/06/02(金) 10:31:35.82 ID:QxLZOlf9.net] _thisは重複エラーになっちゃうんでやすよね 目的としては、deferredを返すfunctionがあって、その返り値のdoneで呼び元のthisを使いたいんです
718 名前:デフォルトの名無しさん mailto:sage [2017/06/02(金) 11:16:51.90 ID:Ef+/+PyI.net] やりたいことが分からん コード例plz
719 名前:デフォルトの名無しさん mailto:sage [2017/06/02(金) 11:38:44.20 ID:lCCVb2h3.net] アロー関数で済むやつでは
720 名前:デフォルトの名無しさん mailto:sage [2017/06/02(金) 12:13:45.27 ID:QxLZOlf9.net] >>688 var testFucntion = () => { var defer = $.Deferred(); defer.resolve("a"); return defer.promise(); } var hoge: string; testFucntion() .done(function (data: string) { this.hoge(data); }) こんな感じ
721 名前:デフォルトの名無しさん mailto:sage [2017/06/02(金) 12:15:24.11 ID:Ef+/+PyI.net] >>690 >>689
722 名前:デフォルトの名無しさん mailto:sage [2017/06/02(金) 12:17:24.53 ID:lCCVb2h3.net] 草www
723 名前:デフォルトの名無しさん mailto:sage [2017/06/02(金) 12:20:14.11 ID:jbvcqQ/c.net] 自演乙としか
724 名前:デフォルトの名無しさん mailto:sage [2017/06/02(金) 23:52:05.01 ID:7H2+/kur.net] functionが自然な場所は、アローにしてて、 アローで解決できる箇所はfunctionなのはなぜ。
725 名前:デフォルトの名無しさん mailto:sage [2017/06/03(土) 02:14:50.79 ID:QIr3+kxI.net] >>690 doneのほうをアロー式にしたらいいんやで あとvsで開発してる場合、デバッグ時にウォッチしたとき、そのthisにはtestFucntionが入るけど 実際にはちゃんと使いたい値が入ってるから安心しな
726 名前:デフォルトの名無しさん mailto:sage [2017/06/03(土) 09:18:06.31 ID:bm3mvh5f.net] アロー使えばselfいらないって知った時感動した
727 名前:デフォルトの名無しさん mailto:sage [2017/06/04(日) 01:06:25.77 ID:ioiT3hTG.net] Angular(2以降)の話題もここでよろしょうございますか?
728 名前:デフォルトの名無しさん mailto:sage [2017/06/04(日) 02:05:52.05 ID:fuFkI60h.net] まったくではないが違うんじゃないか?
729 名前:デフォルトの名無しさん mailto:sage [2017/06/04(日) 05:58:20.77 ID:xlmC5HkR.net] medaka.2ch.net/test/read.cgi/php/1415599223/
730 名前:デフォルトの名無しさん mailto:!sage [2017/06/11(日) 19:15:01.32 ID:AskXGu9A.net] interface A{ x:string; y:string; } interface B extends A{ x:number; } が型の互換性エラーになるの何とかならない? let a={x:'hoge',y:'foo'}; let b={...a,{x:1}}; みたいな事は出来るのにbを現す型を簡単に定義出来ないのが辛い
731 名前:デフォルトの名無しさん [2017/06/11(日) 19:18:40.94 ID:AskXGu9A.net] >>697 ngxのスレは別にある
732 名前:デフォルトの名無しさん [2017/06/11(日) 19:55:36.52 ID:AskXGu9A.net] >>699 2以降はこっち mevius.2ch.net/test/read.cgi/hp/1484055394/
733 名前:デフォルトの名無しさん [2017/06/11(日) 20:29:27.66 ID:zURolSWc.net] >>700 型が変わったら継承できないのは当たり前では? interface Parent { x: string | number; y: string; } interface A extends Parent { x: string; } interface B extends Parent { x: number; } こういう関係が正しい関係では?
734 名前:デフォルトの名無しさん mailto:sage [2017/06/11(日) 21:09:00.82 ID:y28miZDE.net] 理解してない奴を炙り出すのにも静的チェックは必要なんやなって
735 名前:デフォルトの名無しさん mailto:sage [2017/06/11(日) 21:21:16.05 ID:QZNztTAY.net] >>703 プロパティだとセットのときを考えるとcontravariantじゃないとダメだしゲットのときにはcovariantじゃないとダメだから結局invariantが必要になるような気がする アクセサならsetのパラメタとgetの返却値で型が異なってもいいから問題ないと思うけど
736 名前:デフォルトの名無しさん [2017/06/11(日) 22:09:32.03 ID:AskXGu9A.net] >>703 継承出来ないのは当たり前って言うのは分かる ただ上書きする構文が欲しい
737 名前:デフォルトの名無しさん mailto:sage [2017/06/11(日) 22:13:08.61 ID:QZNztTAY.net] >>706 ジェネリクスあるし上書きする構文が必要になる状況が分からん
738 名前:デフォルトの名無しさん [2017/06/11(日) 22:22:11.45 ID:eD+QASKK.net] 上書きなんぞせずとも別の名前付ければよくね? デメリットしか思い付かないし実装されないと思うが、仮に実装されたとしても予想される実装方法はBの型を通してアクセスしたときは型名とかをprefix付けた別名になるようにトランスパイルされるようになるだけでしょ
739 名前:デフォルトの名無しさん mailto:sage [2017/06/11(日) 23:47:19.06 ID:fVYgJSKO.net] extends Aじゃないけどその定義を流用してBを定義したいということか?
740 名前:デフォルトの名無しさん [2017/06/11(日) 23:48:25.17 ID:AskXGu9A.net] >>709 そういう事
741 名前:デフォルトの名無しさん [2017/06/11(日) 23:49:49.29 ID:AskXGu9A.net] B extends Aじゃないから当然 (hoge:B)=>{ let foo:A=hoge; } みたいな事は出来なくて良い(というか出来ない)
742 名前:デフォルトの名無しさん mailto:sage [2017/06/12(月) 00:58:34.90 ID:F6aJQHtJ.net] 継承じゃないんだから諦めてジェネリクス使いなよ
743 名前:デフォルトの名無しさん mailto:sage [2017/06/12(月) 08:01:38.24 ID:9hAA1jJ7.net] 世の中にxがstringかnumberの場合があるのなら、x: string | number という定義が正しい気がしますが
744 名前:デフォルトの名無しさん mailto:sage [2017/06/12(月) 08:11:52.28 ID:R1uj6Z8h.net] ジェネリクスだと>>700 の問題がどこまで解決できるんだろう。
745 名前:デフォルトの名無しさん mailto:sage [2017/06/12(月) 08:26:45.30 ID:vVucOmau.net] >>714 interface X<T> { x: T; y: string; } interface A extends X<string> { } interface B extends X<number> { }
746 名前:デフォルトの名無しさん [2017/06/12(月) 18:05:51.91 ID:i2S9/2aT.net] flowとtypescriptって どっちが良いの?
747 名前:デフォルトの名無しさん [2017/06/12(月) 18:14:08.97 ID:/bUB16QZ.net] >>716 圧倒的TypeScript 異論は見ろめない
748 名前:デフォルトの名無しさん mailto:sage [2017/06/12(月) 21:00:25.44 ID:5UNDPLtW.net] 酔うの早すぎるだろ
749 名前:デフォルトの名無しさん mailto:sage [2017/06/13(火) 22:10:43.81 ID:PMWJJsvl.net] Announcing TypeScript 2.4 RC https://blogs.msdn.microsoft.com/typescript/2017/06/12/announcing-typescript-2-4-rc/
750 名前:デフォルトの名無しさん mailto:sage [2017/06/14(水) 08:28:34.92 ID:TtxDPC/b.net] enumってstring literal型出てからほぼ使わなくなったからなあ コード内でimportできるのもよくわからん 何がよくなったんだ
751 名前:デフォルトの名無しさん mailto:sage [2017/06/14(水) 09:04:40.52 ID:t483F9YG.net] 新importは関数であることに意味がある
752 名前:デフォルトの名無しさん mailto:sage [2017/06/14(水) 21:28:45.57 ID:YgZhsY+k.net] >>721 なるほど Promiseで返すってことはasync await 前提なんかな。 ちょっと非同期周りで互換性のないライブラリ使ってると途端に不便になるから 一長一短ではあるんだけど。全部がPromise使うライブラリで固められれば便利になるんかな。
753 名前:デフォルトの名無しさん mailto:sage [2017/06/14(水) 21:29:54.91 ID:YgZhsY+k.net] jsの仕様変更そろそろ収まって欲しい。 import周りってこれで安定するようになるのかな。
754 名前:デフォルトの名無しさん mailto:sage [2017/06/15(木) 19:20:45.69 ID:Zba3QY3O.net] filterの中でasync await って使えないんですかね?
755 名前:デフォルトの名無しさん [2017/06/15(木) 19:24:11.68 ID:xqojsLNP.net] >>724 無理 rxjs使うか設計見なおせ 具体的に何をしたい?
756 名前:デフォルトの名無しさん mailto:sage [2017/06/15(木) 21:25:19.64 ID:Zba3QY3O.net] filterの評価関数を作ろうとした時に、今まで作ったやつが全部プロミス返す設計になっていたので、 シームレスに使おうとしたらasync-awaitを使えないかなーと。 将来的にここもasync await使えるようになるのかな。 結局ループを回して絞込処理を実装しましたわ。
757 名前:デフォルトの名無しさん [2017/06/15(木) 21:30:12.69 ID:xqojsLNP.net] rxjs使え
758 名前:デフォルトの名無しさん [2017/06/15(木) 21:32:03.12 ID:xqojsLNP.net] それか自作。そんなに難しくないぞ
759 名前:デフォルトの名無しさん mailto:sage [2017/06/16(金) 01:22:09.50 ID:uNQVqIhb
] [ここ壊れてます]
760 名前:.net mailto: rx推しが謎すぎる。 [] [ここ壊れてます]
761 名前:デフォルトの名無しさん mailto:sage [2017/06/16(金) 07:51:13.34 ID:VSZ6CfqO.net] ループでawaitしちゃうってパフォーマンス悪くない? await promise.all([].map(async () => {})) こういうのが普通では?
762 名前:デフォルトの名無しさん mailto:sage [2017/06/16(金) 12:37:39.06 ID:uNQVqIhb.net] >>730 ずっとpromise.allの存在を失念してた。 これでmap的な使い方できるね。 ところでtypescriptのプロジェクトで自作helperライブラリを使う時にいちいちimportを使うのが面倒くさいんで 自動でimportする設定ってtsconfigにないかな?
763 名前:デフォルトの名無しさん mailto:sage [2017/06/17(土) 10:56:23.79 ID:254ieyWi.net] typescript便利だけどやっぱり型が後付の弊害がなかなかしんどい。 nullを許
764 名前:容しない前提かと思って使っても結局 実体はnullが突っ込んであったり する。 [] [ここ壊れてます]
765 名前:デフォルトの名無しさん mailto:sage [2017/06/17(土) 17:32:41.06 ID:Jhwo6DZg.net] 弊害じゃなくて人為的ミス 誤りに気付いた者が正せばいい
766 名前:デフォルトの名無しさん mailto:sage [2017/06/17(土) 22:27:47.68 ID:254ieyWi.net] swaggerのジェネレーターが出すコードなんだよね。プルリク出すのが面倒です
767 名前:デフォルトの名無しさん mailto:sage [2017/06/18(日) 00:50:13.20 ID:GScuub4f.net] サーバーサイドの言語仕様とswaggerがstrict null checkに対応してないだけであって typescriptは何も悪くないのでは
768 名前:デフォルトの名無しさん [2017/06/18(日) 15:17:38.51 ID:xPH4G83l.net] ほんそれ
769 名前:デフォルトの名無しさん mailto:sage [2017/06/18(日) 20:34:02.75 ID:9Ms8Oqe4.net] >>735 本体がstrict null check対応しても モジュール側が対応してないとそこは無視するってことです? 例えばモジュールが強制的に T | undefined | null 型になるとかならいいんですけどね
770 名前:デフォルトの名無しさん mailto:sage [2017/06/19(月) 00:15:28.42 ID:2IBzsU2g.net] type Action = { type: “A”, id: number } | { type: “B”, payload: any } …. みたいな定義がある時に interface ALias { [type: Action.type]: () => any; } export default <Alias> { “A”: func1, “B”: func2, } みたいに書けないですかね? つまりAction.typeをinterface の条件に入れたいってことなんですが。
771 名前:デフォルトの名無しさん mailto:sage [2017/06/19(月) 09:56:19.65 ID:nrLP7Uu1.net] インデックスシグネチャがstringかnumberしか受け入れない現状では Aliasを定義する時点でキー(Action.typeの値)が 分かってるなら interface Alias { 'A'?: Func; 'B'?: Func; } 分からないなら interface Alias { [type: string]: Func; }
772 名前:デフォルトの名無しさん mailto:sage [2017/06/19(月) 20:30:47.90 ID:8qDOjcU2.net] >>731 interface Actions { A: {id: number}; B: {payload: any} } interface Arias {[key in keyof Actions]: () => Actions[key]} こういうことかな?
773 名前:デフォルトの名無しさん [2017/06/19(月) 21:29:43.40 ID:GKod7M3S.net] 携帯から書いたけどエラー起きてるし意図理解できてなかった。 こういうことかな? type Action = { type: "A" } | {type: "B"}; type Arias = {[K in Action["type"]]: () => void} i.imgur.com/17xtAlw.png
774 名前:デフォルトの名無しさん mailto:sage [2017/06/19(月) 22:19:36.13 ID:p+TikfUB.net] Arias(笑)
775 名前:デフォルトの名無しさん mailto:sage [2017/06/20(火) 16:14:46.75 ID:Nl8VP77v.net] >>741 おー。聞いてみて良かったです。半分諦めてたんで。 上手く動きました。ありがとうございます。
776 名前:デフォルトの名無しさん mailto:sage [2017/06/21(水) 12:13:37.61 ID:qahQSwg3.net] >>743 もっとこういう質問で賑わってほしい 書いてて気持ちいい言語だから angularやreactは流行らなくていいけどフロント開発の標準はtypescriptになってほしい
777 名前:デフォルトの名無しさん mailto:sage [2017/06/21(水) 14:47:30.10 ID:CAzvCkNY.net] >>744 定義ファイルがなくて自作するハメになると途端に苦痛になるけどな。 あとReactというかReduxつかってて合わせてimmutable.js使ってると いつの間にかclassがjsonに変わってることがあってその場合はtypescriptの型と合わなくなるから しんどい。型が後付じゃない言語ならこういうことがないから、ちょっと辛い。 結局reducer内で使う時にjsonからimmuatblejsのclassに変換して state返す時にjsonに戻す処理を毎回入れる方針になった。 immutable.jsは全然typescriptと相性が良くない。 XXX.set(‘member’, value) みたいな構文になるから。 もっとtypescriptで使いやすいimmutableなライブラリないかしら。
778 名前:デフォルトの名無しさん [2017/06/21(水) 16:08:20.66 ID:QjjhDd/n.net] >>745 新バージョンではXXX.setが型安全になるからもう少し待て リテラル型とkeyofを使うらしい
779 名前:デフォルトの名無しさん mailto:sage [2017/06/21(水) 19:23:40.28 ID:CAzvCkNY.net] https://goo.gl/7Ty7Tq
780 名前: こんな感じのコードでファイルのアップロード処理を作りたいんですが 上手く動かなくて悩んでいます。 お助け下さい [] [ここ壊れてます]
781 名前:デフォルトの名無しさん [2017/06/21(水) 21:09:26.65 ID:nUhsZ0ik.net] >>747 ブラウザのセキュリティ設定で、`input.click()`はfileエレメントには効かないみたいですね。 https://stackoverflow.com/questions/210643/in-javascript-can-i-make-a-click-event-fire-programmatically-for-a-file-input
782 名前:デフォルトの名無しさん [2017/06/21(水) 21:50:59.59 ID:nUhsZ0ik.net] >>745 immutablejsというのは使ったことないけど、 XXX.set(‘member’, value)みたいな処理もkeyof使ってラップしてあげればkey毎に違う型のvalueに対応できる。 例えばES6のMap<K,V>クラスをラップすれば以下みたいなこともできる。 まあ新しいバージョンで対応されるならわざわざラップクラス作る必要ないがw class TypeSafeMap...(省略 interface IObject { name: string; height: number; isYes: boolean; } const safeMap = new TypeSafeMap<IObject>(); safeMap.get("name") // string型 safeMap.get("height") // number型 safeMap.set("name", 1) // NG safeMap.set("name", "one") // OK https://goo.gl/j6hy4T
783 名前:デフォルトの名無しさん mailto:sage [2017/06/21(水) 22:49:52.97 ID:CAzvCkNY.net] >>748 こちらは結局 イベントリスナーをcickではなくchange にすることで上手く動くようになりました。 >>749 typescriptのジェネリクスの性能いいですね。 結構知らない機能がまだありそう。
784 名前:デフォルトの名無しさん mailto:sage [2017/06/22(木) 00:17:25.62 ID:u6z6+xvR.net] >>750 それはよかったです、てっきりclickイベントをjsで発火させてファイル選択ダイアログを自動で開かせたいのか思ったw
785 名前:デフォルトの名無しさん mailto:sage [2017/06/22(木) 17:18:45.24 ID:77+4f1XL.net] >>751 そうなんですけどリスナーのイベント指定がclickではなくchnageだったってことです。 https://goo.gl/QHZCsG before i.addEventListener(‘click’, async (e) => { after i.addEventListener('change', async (e) => {
786 名前:デフォルトの名無しさん mailto:sage [2017/06/22(木) 18:30:45.28 ID:b2Lz7aux.net] >>752 たしかのそれもひとつの原因ですね ですがclickイベントの発火も多分動かないのでは?chブラウザにもよると思いますがchromeで動かなかったですよ
787 名前:デフォルトの名無しさん mailto:sage [2017/06/22(木) 19:47:44.81 ID:77+4f1XL.net] >>753 動きましたよ。少なくともchromeでは。動くコードを>>752 に貼ったんで
788 名前:デフォルトの名無しさん [2017/06/22(木) 20:06:21.77 ID:u6z6+xvR.net] >>754 >>752 は手動のクリックイベントからclick発火してるので動きますね >>747 はsettimeout内でclick発火してるので、動かないです
789 名前:デフォルトの名無しさん mailto:sage [2017/06/24(土) 00:04:21.44 ID:7kzB7ca0.net] typescriptでreduxのミドルウェア書いてる人っていませんか? export interface Middleware { <S>(api: MiddlewareAPI<S>): (next: Dispatch<S>) => Dispatch<S>; } 上記interfaceを満たすコードを書けなくて困ってます。サンプルコード的なのどっかにないですかね?
790 名前:デフォルトの名無しさん [2017/06/25(日) 15:04:59.28 ID:k1gomwYO.net] reduxってreact関係の何かなのかな? 相変わらずreactの作法は意味不明 流行らずに消えてほしい
791 名前:デフォルトの名無しさん mailto:sage [2017/06/25(日) 15:18:46.73 ID:dKXT3hQ7.net] すみません 今パッケージングというのかライブラリのシステムは何を使うのが正解何ですか? electronやってみようと思ってタイプライブラリをいれようと思っていろいろなサイト見てやってるんですが どれも失敗します 今の定番の方法を紹介してるサイトってありませんか? それとも今は時期がまずいんでしょうか?
792 名前:デフォルトの名無しさん mailto:sage [2017/06/25(日) 16:41:50.61 ID:OCPIhIaN.net] npm -i @types/XXXX
793 名前:デフォルトの名無しさん mailto:sage [2017/06/25(日) 17:11:28.11 ID:k1gomwYO.net] >>758 よくわからないけどelectronのtypescript開発は少しややこしい メインプロセス側と画面側でプロジェクト分けるのが主流で、メインプロセス側はgulpビルド、画面側はwebpackビルドみたいになって少しややこしい
794 名前:デフォルトの名無しさん mailto:sage [2017/06/25(日) 19:32:19.06 ID:o1GCb4AX.net] 回答ありがとうございました もうしばらく待ってみます
795 名前:デフォルトの名無しさん mailto:sage [2017/06/26(月) 10:42:55.52 ID:B+I0vs4D.net] >>757 はやっちゃってるんだよなぁ。 React自体は凄くTypeScriptとの親和性は高い。というかむしろ推奨しているくらい。 ただReduxはTypeScriptからどう使えばいいのかよくわからなくて
796 名前:デフォルトの名無しさん mailto:sage [2017/06/26(月) 15:37:27.06 ID:B+I0vs4D.net] >>756 自己解決したので書いておきます ただのロガーの場合 import { Action } from 'actions'; import { State } from 'reducers'; export function myMiddleware(store: redux.MiddlewareAPI<State>): (next: redux.Dispatch<State>) => redux.Dispatch<State> { return (next: redux.Dispatch<State>) => (action: Action): Action => { console.log(store.getState()); let result = next(action); console.log(store.getState()); return result; }; }
797 名前:デフォルトの名無しさん mailto:sage [2017/06/27(火) 16:22:46.76 ID:xkXC4vKS.net] typescriptで書かれてる有名なライブラリって何があるの? Rx.jsはtypeScriptで書かれてたね。
798 名前:デフォルトの名無しさん [2017/06/27(火) 16:42:32.21 ID:mpuQzI8/.net] フレームワークだけどngx
799 名前:デフォルトの名無しさん mailto:sage [2017/06/27(火) 18:35:39.52 ID:5NUjqPYf.net] Dartどっかいったな
800 名前:デフォルトの名無しさん [2017/06/27(火) 19:04:32.75 ID:mpuQzI8/.net] googleが作る言語はゴミばっかだからしゃーない 言語のセンスは圧倒的にMSの方が上 MSというよりヘルスバーグが有能すぎる
801 名前:デフォルトの名無しさん mailto:sage [2017/06/27(火) 22:13:14.24 ID:xkXC4vKS.net] >>767 goはいいぞ。素朴でモダンという相反する要素を持ち合わせてる。 エコシステムはモダン。 言語仕様は素朴。
802 名前:デフォルトの名無しさん mailto:sage [2017/06/27(火) 22:20:02.75 ID:rQeMEWtY.net] J++とかJ#とかManaged C++とか割と救いようのないものも作ってるけどねMicrosoft でも全体としては確かに良い言語が多い印象 Googleの言語もGoとか(使ったことないけど)人気みたいだし, そもそも作った言語の数が大分違う気が
803 名前:デフォルトの名無しさん [2017/06/27(火) 23:37:36.64 ID:mpuQzI8/.net] >>768 ジェネリクス追加されるまでは様子見…
804 名前:デフォルトの名無しさん mailto:sage [2017/06/28(水) 03:33:15.38 ID:4SuBLGV6.net] マイクロソフトはvsc出したときはなんでatomの二番煎じやってんのって思ったけどやはり製品としての完成度高くて感動する。 開発環境作らせたら最強と言う噂は伊達じゃない。
805 名前:デフォルトの名無しさん mailto:sage [2017/06/28(水) 09:12:54.31 ID:9HmGLvwZ.net] >>764 angular2
806 名前:デフォルトの名無しさん mailto:sage [2017/06/28(水) 14:22:19.39 ID:R0ZTQr0d.net] Announcing TypeScript 2.4 https://blogs.msdn.microsoft.com/typescript/2017/06/27/announcing-typescript-2-4/
807 名前:デフォルトの名無しさん [2017/06/28(水) 16:15:00.25 ID:7uiFkJf0.net] MSは言語と開発環境では最強 ネットや機械学習ならGoogle アップルは…嫌い
808 名前:デフォルトの名無しさん mailto:sage [2017/06/28(水) 16:19:23.04 ID:DxMay05+.net] MSは言語と開発環境では最強 ネットや機械学習ならGoogle アップルは…嫌い
809 名前:デフォルトの名無しさん [2017/06/28(水) 16:28:12.57 ID:7uiFkJf0.net] >>775 何こいつ怖い
810 名前:デフォルトの名無しさん mailto:sage [2017/06/29(木) 16:13:29.70 ID:f9ij8X2q.net] すいません。 例えば以下のようにアクションを定義してあったとして export type Action = { type: 'FETCH_MAIN_FEEDS'; } | { type: 'SET_MAIN_FFEDS'; payload: comm.Contentlist; } | { type: 'DO_NOTHING' }; ジェスリクスの仕組みを使って type ActionType = 'FETCH_MAIN_FEEDS' | 'SET_MAIN_FFEDS' | 'DO_NOTHING' をActionの内容変更に合わせて自動的に作る方法ってないですかね
811 名前:デフォルトの名無しさん mailto:sage [2017/06/29(木) 16:20:59.60 ID:f9ij8X2q.net] 自己解決 export type Action = { type: 'FETCH_MAIN_FEEDS'; payload: undefined; } | { type: 'SET_MAIN_FFEDS'; payload: comm.Contentlist; } | { type: 'DO_NOTHING'; payload: undefined; }; type ActionType = Action['type']; type PayloadType = Action['payload']; 思いの外簡単であった
812 名前:デフォルトの名無しさん mailto:sage [2017/07/10(月) 13:26:30.50 ID:gqDySAuG.net] typescriptのエラーってよくわかんないことある (81,32): error TS2322: Type '{ path: "/logout"; component: typeof Logout; }' is not assignable to type 'IntrinsicAttributes & IntrinsicClassAttributes<Route> & Readonly<{ children?: ReactNode; }> & Rea...'. Type '{ path: "/logout"; component: typeof Logout; }' is not assignable to type 'Readonly<RouteProps>'. Types of property 'component' are incompatible. Type 'typeof Logout' is not assignable to type 'StatelessComponent<RouteComponentProps<any> | undefined> | ComponentClass<RouteComponentProps<any...'. Type 'typeof Logout' is not assignable to type 'ComponentClass<RouteComponentProps<any> | undefined>'. ってでて、何のことかわからない。 偶然解決して、総合するとReact.Componet<P,S>のSをvoidに指定は駄目ってことらしい。 上記エラーメッセージからどう読み取ればそういうことなわけ?
813 名前:デフォルトの名無しさん mailto:sage [2017/07/10(月) 19:20:13.57 ID:lPQJaLkK.net] template登場したての頃のc++みたいだな
814 名前:デフォルトの名無しさん mailto:sage [2017/07/12(水) 20:52:57.67 ID:iKt9vtZC.net] @typesやパッケージ自身が持っているd.tsに問題があるとき、自分のプロジェクト内で 部分的に修正版と差し替えたりできないのかな? Typescript2.4に上げたらいくつかのパッケージがエラーを出すようになってしまったんで 大元が対応するまでの間ちょっと回避したいんだが。
815 名前:デフォルトの名無しさん mailto:sage [2017/07/12(水) 21:44:01.43 ID:46U9BX05.net] >>781 https://teratail.com/questions/83920
816 名前:デフォルトの名無しさん mailto:sage [2017/07/12(水) 22:50:59.04 ID:iKt9vtZC.net] リンク先のそれは解決法として正しいのかという疑問はあるがとりあえず、declareで 定義を上書きできるということかな。試してみるわ。ありがとう。
817 名前:デフォルトの名無しさん mailto:sage [2017/07/13(木) 12:11:08.28 ID:SeGC5rTL.net] ここでredux-observale薦めてもらったのもあって試してるんだけど epicを書く時 action$.ofType('FIRST’)って書いてfilterするのはいいんだけど返ってくる Observaleがtype:’FIRST’に絞り込められてくれない。 無理やりキャストして使えってこと? いい方法教えてください
818 名前:デフォルトの名無しさん mailto:sage [2017/07/14(金) 00:10:59.94 ID:UTvPeefr.net] VS2017は2015と違ってJavaScriptで var a = {}; a.b = 1; と書いてその下に「a.」と入力しても候補にnumber型プロパティとしてのbはない TypeScriptのnamespaceがブラウザの生JavaScriptでも使えるようになったら便利そうなんだけどな
819 名前:デフォルトの名無しさん mailto:sage [2017/07/14(金) 15:42:06.74 ID:AYnLv9ir.net] >>783 いやいや。具体的に指摘してほしいな。 reduxのactionは基本的にobjectであれば何でもあり。というスタンスのもの
820 名前:ナ そのactionに継承関係を設定してるのはたまたま定義ファイルの作者がなんとなく決めた程度のものでしかない。 となると元々の定義を修正してしまっても不都合はないと思うんだが。 更にいうとreduxのmiddlewareの定義ファイルも、結構declareで大元のreudxの定義を改変してる。 (redux-thunkとかredux-promiseとか) [] [ここ壊れてます]
821 名前:デフォルトの名無しさん mailto:sage [2017/07/14(金) 22:07:24.48 ID:Ukk3qL4L.net] 「具体的に」と言っている当人が具体的にに何を指摘しているのかわからない件
822 名前:デフォルトの名無しさん mailto:sage [2017/07/17(月) 02:22:25.78 ID:HJdOjxBV.net] モジュール拡張書いてる人っていますか? ローカルではうまく書けるんだけど、 npmで管理して外部モジュール化しようとするとうまく動かなく
823 名前:ネる。 jsとd.tsに別れるとだめなんだろうか、、、、。 なんか参考になるnpmライブラリが有るなら事に教えてくださいm(_ _)m [] [ここ壊れてます]
824 名前:デフォルトの名無しさん [2017/07/17(月) 09:24:35.44 ID:3rVoB3WX.net] >>788 jsとd.tsを同じ所に置けばおk angularとか参考になるよ
825 名前:デフォルトの名無しさん mailto:sage [2017/07/17(月) 12:07:57.24 ID:HJdOjxBV.net] >>789 ありがとうざいます。js とd.tsは同じ場所においてます、、、、 ちょっとangularはわからなかったのですが rxjs5はoperatorをモジュール拡張の仕組みを使っているので参考になりました。 それを元に書いてるんですが、、、 どうしてもうまくいかないです。
826 名前:デフォルトの名無しさん [2017/07/17(月) 12:30:35.11 ID:3rVoB3WX.net] >>790 npm rxjsした時のフォルダ構成とビルド結果が同じようにすればおk もちろんパッケージ.jspnとかもな
827 名前:デフォルトの名無しさん mailto:sage [2017/07/20(木) 13:43:30.16 ID:9ngnJ+y5.net] typescriptってユーザー数多そうなのに どこに生息してるん? teratailもあんまりいなさそうだし。slackとかかね? おせーてください
828 名前:デフォルトの名無しさん mailto:sage [2017/07/20(木) 15:04:36.06 ID:heFqzBlt.net] typescript は google 社員御用達だぞ ここのレスも 99 割が google 社員のもの
829 名前:デフォルトの名無しさん mailto:sage [2017/07/20(木) 15:14:04.11 ID:9ngnJ+y5.net] MSとgoogleのマリアージュとか最高じゃないかな。
830 名前:デフォルトの名無しさん [2017/07/20(木) 17:31:24.01.net] >>792 TypeScriptはほぼJSだから他の言語と違って特に質問するような事ないし…
831 名前:デフォルトの名無しさん mailto:sage [2017/07/20(木) 20:56:24.88.net] >>795 定義ファイル周りとか結構悩むことない? 例えばreduxとかそのまま使うとTypeScriptの補完機能を活かしきれなくて typescript-fsaとかを使って補強してやると凄く調子良く動く。
832 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 10:18:51.65 ID:O7VztC89.net] https://jp.vuejs.org/v2/guide/typescript.html vuejsもtypescriptとの親和性上がってるのかな。 昔はいまいちだったんだけど
833 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 21:08:46.09 ID:O7VztC89.net] typescriptでjest使ってる人っています? 行番号がめちゃくちゃになっちゃうんですが、どうすればいいんですかね? inlinesoucrmap: trueにセットしても改善せず。 行番号以外は上手く動いてるんですけどね。
834 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 23:55:24.33 ID:W7NHR4pI.net] es2015とかes2017はどうかな? async await使えるの幸せ。
835 名前:デフォルトの名無しさん mailto:sage [2017/08/03(木) 14:06:03.33 ID:GUb8aQei.net] さすが俺達のTypeScript TypeScripts Type System is Turing Complete https://github.com/Microsoft/TypeScript/issues/14833
836 名前:デフォルトの名無しさん mailto:sage [2017/08/03(木) 19:19:00.00 ID:WxFDmNeE.net] >>800 ジェネリグスだけでプログラミングできるってこと? わけわかめ
837 名前:デフォルトの名無しさん mailto:sage [2017/08/04(金) 00:27:45.60 ID:LmyTNXHn.net] ようやくHTML+CSSに追いついたわけだな https://cpplover.blogspot.com/2013/10/blog-post_20.html
838 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 11:10:59.59 ID:3DdLvbHE.net] tsconfig.json で noImplicitAny をtrueにしてみたら、npmからのモジュールをimportしている部分で こういうエラーが大量に出るようになってしまった。 error TS7016: Could not find a declaration file for module 'モジュール名'. importをrequireに戻したら逆に不便だし、自分で .d.ts を用意するには数が多すぎて追いつかない。 noImplicitAny の対象を自分のコードのみに限定する(node_modules以下を対象外とする) なんてことはできないんだろうか。
839 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 11:34:41.06 ID:DE4QKP9/.net] >>803 俺は普通に使えてるけどな。tsconfig全体を貼ってみたら?
840 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 11:38:02.30 ID:DE4QKP9/.net] あと使ってるライブラリも。ライブラリによって違うのかな? 俺はreduxとかreactとかm
841 名前:oment.jsとかimmutable.jsとか色々入れてるけど 特にそういう不具合が起きたことはないな。 多分デフォルトでtsconfigの中身はnode_modules対象外な気がする。 一応聞くけどwebpack使ってないよね? [] [ここ壊れてます]
842 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 11:51:37.20 ID:3DdLvbHE.net] このへんのモジュールが引っ掛かった。全部じゃないけど。 react-spin cookie-parser uuid-parse >一応聞くけどwebpack使ってないよね? そう、webpack使ってる。 module: { rules: [ { exclude: /(node_modules)/, test: /\.[jt]s$/, use: [ { loader: 'ts-loader', options: { configFileName: "tsconfig.json", } } ] } ] }, tsconfig.json はこんな感じ。 { "compilerOptions": { "module": "commonjs", "target": "es6", "allowJs": true, "strictNullChecks": false, "noImplicitAny": false, "noImplicitThis": true, "noImplicitReturns": true, "sourceMap": true }, "exclude": [ "node_modules" ] } excludeの設定を間違えているのかな?
843 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 15:39:16.07 ID:DE4QKP9/.net] なんだ、全部のd.tsが見つからないって言ってるわけじゃないなら、node_modules関係なくない? 足りないd.tsファイルは自作するしかないでしょ。インストールしたのに見つからないなら問題だけど
844 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 15:56:35.18 ID:DE4QKP9/.net] webpackのresolveが抜けてるんじゃない? resolve: { extensions: ['.ts', '.tsx', '.js', '.jsx'], modules: [ "node_modules/" ] },
845 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 16:09:16.06 ID:DE4QKP9/.net] >react-spin あとreact-spinは型定義にないみたいね。でもこれくらいなら五分で自作できるから大丈夫。
846 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 18:30:45.13 ID:3DdLvbHE.net] >>807 noImplicitAny = false なら .d.ts が無くても使えていたんで何か方法はないかと思ったけど、 無いならしょうがないね。ありがとう。
847 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 19:23:03.92 ID:DE4QKP9/.net] >>810 いやいや。簡単だから諦めないでよ。特にreact-componentなら簡単に自作できる https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/material-ui-pagination/index.d.ts これとか参考になると思う
848 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 19:49:53.59 ID:3DdLvbHE.net] 最初に書いたとおり、単に数が多いからやってられんてだけ。
849 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 19:58:06.64 ID:DE4QKP9/.net] >>812 あーなるほど失礼 もともとjs案件だったってこと?
850 名前:デフォルトの名無しさん mailto:sage [2017/08/13(日) 21:25:13.43 ID:LJmg41iW.net] (new Error()).stack みたく 実行箇所のtsファイル名と行番号を取得する方法ってないですかね。 プリプロセッサみたくコンパイルする過程でファイル名と行番号に変換するような定数があればいいんですけど
851 名前:デフォルトの名無しさん mailto:sage [2017/08/15(火) 09:46:45.08 ID:yLrj+bDi.net] o : any が"x"というメンバーを持っているか調べるのは if ("x" in o) でできるけど、 o.x の型がstringかどうか調べようと if (typeof o["x"] === "string") とやるとESlintの no-string-literalに引っかかってしまう。 このルールを無効にする以外にメンバーの型をチェックする方法ってないですかね?
852 名前:デフォルトの名無しさん mailto:sage [2017/08/15(火) 14:18:14.33 ID:tN8D0FqC.net] >>815 無理 any型を使ってる時点でtsにできることは無い
853 名前:デフォルトの名無しさん mailto:sage [2017/08/15(火) 14:30:58.84 ID:Yyv6Foyi.net] >>815 一旦変数に入れてからアクセスすればいいんじゃない const x = "x"; if (typeof o[x] === "string") { ...
854 名前:デフォルトの名無しさん mailto:sage [2017/08/15(火) 15:31:46.37 ID:yLrj+bDi.net] >>817 なるほど、そんな方法が。うまくいったみたい。ありがとう。 使う直前で変数に入れるならdisableにするのとさほど変わらないけど、メンバー名はどこかで 一元管理しておけってことかな。
855 名前:デフォルトの名無しさん mailto:sage [2017/08/15(火) 17:11:17.08 ID:tN8D0FqC.net] >>818 単に変数oにinterface定義してあげればいい
856 名前:セけでは。 そもそもtslintじゃなくてeslint使っているという状況もよくわからない [] [ここ壊れてます]
857 名前:デフォルトの名無しさん mailto:sage [2017/08/15(火) 17:54:36.31 ID:yLrj+bDi.net] あぁ、eslintって書いたのはtslintの間違い。 >単に変数oにinterface定義してあげればいいだけでは。 ネットワークやファイル経由のjsonとか、型情報が落とされたオブジェクトからの復元なんで。
858 名前:デフォルトの名無しさん mailto:sage [2017/08/15(火) 23:34:39.69 ID:Yyv6Foyi.net] >>819 いや静的型チェックと実行時型チェックをごっちゃにしちゃダメでしょ TypeScriptは静的型チェックを提供するものなんだから実行時型チェックにinterfaceなんて持ち出す道理がない
859 名前:デフォルトの名無しさん mailto:sage [2017/08/17(木) 11:02:47.05 ID:wX4L2Jep.net] >>821 そうだったね。ごめん
860 名前:デフォルトの名無しさん mailto:sage [2017/08/22(火) 22:13:44.37 ID:/ptFhj0b.net] TSの環境の開発の旗振りって誰? いつになったら開発環境が安定するの? webの情報のほとんどが古くて使えない
861 名前:デフォルトの名無しさん mailto:sage [2017/08/22(火) 22:37:14.07 ID:1PU0SC+v.net] まずVSCodeをインストール npmでts2.xをインストール 型定義は@types/xxxxxxx
862 名前:デフォルトの名無しさん mailto:sage [2017/08/23(水) 13:19:39.56 ID:12Hdps1J.net] msで作ってるから、まずはmsの開発環境試してみればいいんだろうけど、 大元の実装が不安定だったりするの? https://github.com/Microsoft/TypeScript/wiki/Architectural-Overview
863 名前:デフォルトの名無しさん mailto:sage [2017/08/23(水) 13:23:34.59 ID:YtvD4LeH.net] TypeScriptの実装じゃなくて環境の方だろ? 型定義ファイルもTypingsとか@typesとかいろいろ変遷してきたし
864 名前:デフォルトの名無しさん mailto:sage [2017/08/23(水) 19:59:00.18 ID:KTb6BBkr.net] TypeScript1.0が出たころ何冊も本が書かれたけど、その後どんどん進化するから誰も手を出さなくなったな。
865 名前:デフォルトの名無しさん mailto:sage [2017/08/23(水) 20:36:30.14 ID:CbozNT9/.net] 進化に関係なく使う人が居て需要があれば本は出される 出されないってことは・・そういうことだ
866 名前:デフォルトの名無しさん mailto:sage [2017/08/25(金) 02:06:21.27 ID:+9ilYHDI.net] ジェネリクスで教えてほしいことがあるんですが 型がundefinedかそうでないかで処理分岐をしたいんですがどうすればいいでしょうか https://goo.gl/L6wazS 上記のようなコードはジェネリクスだとPはコンパイル時に解決されるものだからダメですよね。 じゃあどうすればいいんでしょうか。 もちろん引数にpayload:P みたいなのがあればtypeGaurdが使えるんですけど、それがない場合は?
867 名前:デフォルトの名無しさん mailto:sage [2017/08/25(金) 07:45:31.16 ID:HjHZR7Zb.net] 試してないけど、Pのローカル変数を置いてみるのは? 初期化できないとダメかな。
868 名前:デフォルトの名無しさん mailto:sage [2017/08/25(金) 09:42:23.66 ID:WV+v2bcZ.net] コンパイル時に型自体の比較が出来ればいいんだけどねぇ
869 名前:デフォルトの名無しさん mailto:sage [2017/08/25(金) 12:42:23.60 ID:ai11peC4.net] 型がundefinedって言うのは違うのでは? 変数がundefinedならわかるけど考え方の次元が違う気がする Add<undefined>(item);ってありえないだろ
870 名前:デフォルトの名無しさん mailto:sage [2017/08/25(金) 18:31:01.83 ID:uvmzLTaY.net] undefinedの型はundefinedだよ
871 名前:デフォルトの名無しさん mailto:sage [2017/08/25(金) 21:39:57.29 ID:+9ilYHDI.net] >>832 undefined型、null型あります
872 名前:デフォルトの名無しさん mailto:sage [2017/08/26(土) 04:59:29.39 ID:FZcG7krL.net] undefined null void never 使い分け出来てる?
873 名前:デフォルトの名無しさん mailto:sage [2017/08/27(日) 13:34:52.17 ID:0P4eY3kj.net] >>830 だめでしたわ。やはり最終的に生成されるjsコードが型がないからなにもないところに型を定義するのは無理っぽい ジェネリクスって使う側には幸せだけどライブラリを作ろうって思うとなかなか難しいす。 実は以下のコードが小さくて見やすいので改造できないか試しているんです。 https://github.com/aikoven/typescript-fsa/blob/master/src/index.ts store.dispatch(someAction()) というように同期型のアクションを作るときはパラメータ引数無しで使えるんだけど 非同期アクションを使おうとした場合はパラメータ引数なしの表現ができないんですよ。 store.dispatch(someAsyncAction.started
874 名前:(undefined)) と書かなきゃけない。 ここのundefinedを省略する方法を探っていたんですよね。 [] [ここ壊れてます]
875 名前:デフォルトの名無しさん mailto:sage [2017/08/27(日) 13:49:39.35 ID:0iS30aa2.net] そもそも何がしたいのかわからないんだけど 引数追加したいけないのか?
876 名前:デフォルトの名無しさん mailto:sage [2017/08/27(日) 13:55:46.03 ID:0iS30aa2.net] レス見てなかった ごめんごめん
877 名前:デフォルトの名無しさん mailto:sage [2017/08/27(日) 14:17:00.38 ID:iBnNI7N6.net] 引数にPが含まれていない以上呼び出し時の型パラメータはハードコーディングしなきゃならんわけで、 それならOnlyH用の関数と分けてしまっても大して変わらんだろう。処理自体は共通化すればいいし。
878 名前:デフォルトの名無しさん mailto:sage [2017/08/27(日) 14:23:58.62 ID:0iS30aa2.net] ところで本当にこれジェネリックの問題?
879 名前:デフォルトの名無しさん mailto:sage [2017/08/27(日) 14:27:48.95 ID:wLayuApT.net] C++でならテンプレートの特殊化で書けるし書きたい気持ちはよく分かる
880 名前:デフォルトの名無しさん mailto:sage [2017/08/27(日) 17:42:23.47 ID:0P4eY3kj.net] >>839 もちろんそれならできることは確認してますが、それだったら引数にundefined 許容したほうがいいかなーと。 ジェネリクスは知らないことが色々ありそうなんでもしかしたら解決方法があればと想ったんですが、、、、 typescriptの進化を待ちます、、、。 >>841 c++だとできるんですか。 どう書くのか知りたいです
881 名前:デフォルトの名無しさん mailto:sage [2017/08/27(日) 21:19:13.07 ID:wLayuApT.net] >>842 何というかC++のテンプレートは強力過ぎる Boost::Spiritみたいにコンパイル時に構文解析器を生成するような変態的なことさえ可能 ただしコンパイル時間は死ぬ ttps://ideone.com/6V11EP C++っぽくないコードだけどとりあえず
882 名前:デフォルトの名無しさん mailto:sage [2017/08/27(日) 21:38:06.45 ID:0P4eY3kj.net] >>843 わ、わかんないです。c++昔使ったことがあるから分かるかと思ったら全然わからなかったという。 でも、ありがとうございました。
883 名前:デフォルトの名無しさん [2017/08/28(月) 18:40:12.12 ID:g1F8jR1j.net] import 'reflect-metadata'; function logType(target: any, key: string) { var t = Reflect.getMetadata('design:type', target, key); console.log(`${key} type: ${t.name}`); } class Demo { @logType public attr1: string; } Visual Studio 2017 で上記のビルドは問題ないのですが 実行すると、「exports は定義されていません」と出てしまいます。 tsconfig.json で "experimentalDecorators": true, "emitDecoratorMetadata": true, は指定しています。 何か足りないのでしょうか?
884 名前:デフォルトの名無しさん mailto:sage [2017/08/28(月) 20:16:46.01 ID:3Zs55+dM.net] >>845 実行環境が書いてないから正確にはわからんのだけど chromeとかブラウザ環境のjsはモジュール管理機構が無いからwebpackとか使わないと直接は実行できない。
885 名前:デフォルトの名無しさん mailto:sage [2017/08/30(水) 15:24:22.43 ID:0nj0F5xg.net] 初心者なんだけど質問いいだろうか? JS使う必要ある→ES5以前気持ち悪い→ES6未対応多い という流れでTypeScript勉強しようかと思ったんだけど、手元にある本が分かりやすいけど1.0対応なんだ 追加機能を順に追えば問題ないだろうと思ったんだけど、更新箇所が多岐にわたるためか結構面倒で ある程度網羅してそうなのも1.0からは追ってなかったりして、少し悩んでる バージョンごとの差分を丁寧にまとめてくれているサイトか、 最新に近いバージョンを網羅的に解説してるサイトを
886 名前:、差分を意識しながら読もうかと思ってるんだけど、 慣れてる者の視点で、なんかいいサイト or 書籍があったら教えてくれないか? [] [ここ壊れてます]
887 名前:デフォルトの名無しさん mailto:sage [2017/08/30(水) 15:36:04.15 ID:KRZoTQ7y.net] 公式のWhat's newがベスト 差分付き公式アナウンスの日本語訳もあったはず
888 名前:デフォルトの名無しさん mailto:sage [2017/08/30(水) 17:14:44.50 ID:0nj0F5xg.net] >>848 ありがとう 公式サイトのドキュメントは「英語でこれだけ読むのはだるい」と回避しちゃってたけど、 確かに差分把握程度なら英語苦手でもなんとかなりそうだし、どうしても分からなければそこだけ別途調べればいいかな……
889 名前:デフォルトの名無しさん mailto:sage [2017/08/30(水) 17:16:57.33 ID:0nj0F5xg.net] >>848 なんか完璧ボケたレスした、すまない 読んで公式確認して〜してる間に2行目が頭から抜け落ちてた 日本語訳あるなら探してみるわ
890 名前:デフォルトの名無しさん [2017/08/30(水) 17:22:11.52 ID:t7ExSs7Y.net] >>847 その用途ならbabel使え 型が欲しい人が使うのがTS
891 名前:デフォルトの名無しさん mailto:sage [2017/08/30(水) 19:16:11.64 ID:2eRd6qUC.net] 俺的には初心者こそTypeScriptってカンジがするけどね。 書いてる最中にエラーが出るから曖昧な知識を補填してくれる。 基本的にはES2015 + 型 だからESの仕様を勉強してればそれがTypeScriptとほぼ一致する。
892 名前:デフォルトの名無しさん mailto:sage [2017/08/30(水) 23:22:37.02 ID:0nj0F5xg.net] >>851 型がある方が楽なんで問題ありません。ありがとうございます。 普段よく使うのが C#, Ruby なんで CoffeeScript も見た目や好きなんですけど……。
893 名前:デフォルトの名無しさん mailto:sage [2017/08/31(木) 10:22:17.60 ID:J0kol7QQ.net] 俺はもうTSだけのトランスパイルで落ち着いちゃったんだけどBabel通すメリットある? Symbolない環境でもArrayLikeをfor-ofできるならBabel使うけどそうでもなさそうだし わざわざビルドを複雑にする理由がない
894 名前:デフォルトの名無しさん mailto:sage [2017/08/31(木) 18:05:56.86 ID:c0+jc73k.net] >>853 見た目は大事だね
895 名前:デフォルトの名無しさん mailto:sage [2017/09/01(金) 13:39:42.18 ID:/s9HCfxW.net] 納期ギリギリでリリースしてきたな
896 名前:デフォルトの名無しさん mailto:sage [2017/09/01(金) 14:35:34.71 ID:gwzO0YnZ.net] Announcing TypeScript 2.5 https://blogs.msdn.microsoft.com/typescript/2017/08/31/announcing-typescript-2-5/
897 名前:デフォルトの名無しさん mailto:sage [2017/09/01(金) 18:09:16.31 ID:NFcRuct1.net] これリリースする意味あるんか?
898 名前:デフォルトの名無しさん mailto:sage [2017/09/01(金) 18:55:40.04 ID:/s9HCfxW.net] やることなくなったんならcommunityに丸投げした大量のバグ修正しろやって感じ
899 名前:デフォルトの名無しさん mailto:sage [2017/09/02(土) 17:49:25.16 ID:p+zwcdRJ.net] プロジェクトの管理者が長期休暇で居なかったからな 今回はバグ修正とリファクタリングが多い 不在の間に溜まってたissueとPRも整理途中って感じだ
900 名前:デフォルトの名無しさん mailto:sage [2017/09/02(土) 17:50:58.84 ID:pn8ujE89.net] そう聞くとなんかほっこりした
901 名前:デフォルトの名無しさん mailto:sage [2017/09/03(日) 14:18:22.90 ID:25YGmHNv.net] Angelar4どう?
902 名前:デフォルトの名無しさん [2017/09/03(日) 16:16:24.17 ID:uF0EtmbD.net] 4はパフォーマンス改善が大きい あとはifとか もう9月だから5出るぞ
903 名前:デフォルトの名無しさん mailto:sage [2017/09/04(月) 09:30:18.55 ID:XPn2hQsA.net] Angular 2/4が狭量で遅すぎる理由 postd.cc/why-angular-2-4-is-too-little-too-late/
904 名前:デフォルトの名無しさん mailto:sage [2017/09/04(月) 15:20:15.81 ID:YyUl+V5/.net] >>864 原文のコメント欄でかなり叩かれてるね
905 名前:デフォルトの名無しさん mailto:sage [2017/09/04(月) 21:01:59.56 ID:54ysCAWj.net] 自分でTL;DRって書いてあるからそっとしておけばいいのに
906 名前:デフォルトの名無しさん mailto:sage [2017/09/04(月) 23:02:59.27 ID:WJEd6wUZ.net] >>863 もうそんな時期か ネットで探すと2ばっかりで4少ない
907 名前:デフォルトの名無しさん mailto:sage [2017/09/05(火) 08:07:39.31 ID:JsNUX7wh.net] >>866 tldrの意味を間違えて解釈してないか?
908 名前:デフォルトの名無しさん mailto:sage [2017/09/06(水) 08:52:58.29 ID:ZKLFsM4G.net] https://eow.alc.co.jp/search?q=tldr TLDR 【略】 =Too long. Didn't read. 長過ぎ。読みませんでした。/長文うざい(と言う人のための要約)。 ◆【場面】ネット上などで「文章が長過ぎる」と文句を言う。転じて「長文を嫌う人のための要約」という意味でも用いられる。
909 名前:デフォルトの名無しさん mailto:sage [2017/09/06(水) 18:28:14.77 ID:8/JJ3nEQ.net] ○次受けが多いほど退場率が早くなる。高くなる 直受けの50万 客:いつまでもうちにいていいよ 3次受けの50万(客は90万払ってる) 客:短期延長していい? 5次受けの50万(客は150万払ってる) 客:作り終わったらとっと出てけ できなかったら即退場だ 長時間労働 高稼働 高スキル要求が多い 零細フリーランスサイトは5次受けから誰もできない難易度の高い仕事 余り物の仕事を紹介してくる。40万円代でやってくれと これならJIETから3次でいったほうがいいな 446非決定性名無しさん2017/08/02(水) 22:12:48.95 JIETに毎月5千円払えば3次から入場できるだろ? 高額をうたうフリーランスのサイトはだいたい5次から45万円 JIETで閲覧応募できる末端価格からさらに搾取するのが高額をみせつけるフリーランスサイトでした 高額案件をみせつけるフリーランスサイトも案件の取得はJIETでした JIETに加入すれば誰でも3次60万からスタートだ。フリーランスのサイトをやってる 自称エージェントもそこから案件情報を取得しきてる。サイトで60万で釣って40万から55万の間でやらしている。 372仕様書無しさん2017/08/11(金) 10:31:43.41 フリーランスで検索すると引っかかる零細ITがやっているフリーランスのサイトはだめだ。 高額に見せているけど実際は50万前後 JIET加入した方がいいよ。案件は毎日千件以上末端価格は60万円 平凡な稼働時間の80万円の案件もある。 ユー子も求人をだしてる。名刺も渡せる。ユー子に名刺が渡せるんだぞ。夢のようだ 自称エージェントはJIETから流れてくる案件を転売してるだけだった。 JIETに加入すれば誰でも案件に応募することができた。収入が40万50万台にならなくて済む エンド - ユー子 - エージェント-JIET 公表価格 90~60 - エージェント×3 = 言い値50万以下 エンド - ユー子 - エージェント-JIET 公表価格 90~60 - エージェント×1 悪質な言い値で50万以下 エンド - ユー子 - エージェント-JIET 公表価格 90~60 - JIETに加入して公表価格で応募できる
910 名前:デフォルトの名無しさん mailto:sage [2017/09/19(火) 11:15:37.37 ID:/BmvhpgH.net] jsbinみたいなやつでautocompleteをサポートしたeditorあるやつないかな。 誰か作って
911 名前:デフォルトの名無しさん mailto:sage [2017/09/20(水) 19:34:43.20 ID:n6fd8Yhd.net] immutable.js v4まだちゃんと動かんのね。補完効くなら早く使いたい。
912 名前:デフォルトの名無しさん mailto:sage [2017/09/26(火) 15:23:42.06 ID:ghZl2iPU.net] TypeScript Deep Dive https://basarat.gitbooks.io/typescript/ 見つけた。読むと幸せになりそう
913 名前:デフォルトの名無しさん mailto:sage [2017/09/27(水) 03:23:26.68 ID:+Ye2aVjL.net] 更新履歴確認できる?
914 名前:デフォルトの名無しさん mailto:sage [2017/10/03(火) 18:20:58.44 ID:W51YTaAn.net] https://blogs.msdn.microsoft.com/typescript/2017/10/02/typescript-turns-5/ Strict function types https://github.com/Microsoft/TypeScript/pull/18654 五周年!
915 名前:デフォルトの名無しさん mailto:sage [2017/10/03(火) 18:39:35.95 ID:9EEmWhET.net] まだ五年しかたってないんだ。
916 名前:デフォルトの名無しさん mailto:sage [2017/10/09(月) 07
] [ここ壊れてます]
917 名前::06:58.86 ID:9dKH0tXT.net mailto: flowは静的解析ツールでtypescriptが言語ってことでいいの? [] [ここ壊れてます]
918 名前:デフォルトの名無しさん mailto:sage [2017/10/09(月) 21:16:28.99 ID:3eEbeVt6.net] flowはゴミだから気にしなくていいよ
919 名前:デフォルトの名無しさん mailto:sage [2017/10/10(火) 03:03:10.33 ID:kZcMF3GJ.net] 今はTSとほぼ同じ構文が使えるみたいだし推論が強い分言語としてはFlowのほうが格上になったと思うよ 開発ツール等を含めた評価はどうなるか知らんが
920 名前:デフォルトの名無しさん mailto:sage [2017/10/10(火) 19:56:20.72 ID:n13p9MLl.net] >>879 対応するライブラリが圧倒的に少ないからflowはゴミだよ TSと完全互換とかならまだ可能性あったかもね
921 名前:デフォルトの名無しさん mailto:sage [2017/10/12(木) 06:43:35.33 ID:D9zQ5ULh.net] 最初は俺もゴミかと思ったけど静的解析ツールとしてってことだと jsのプロジェクトに段階的に型をつけていくならありかなって思ったんだよね。
922 名前:デフォルトの名無しさん mailto:sage [2017/10/12(木) 08:50:48.19 ID:x7s9E0v1.net] >>881 TSだって段階的に型を付けられるっしょ。
923 名前:デフォルトの名無しさん mailto:sage [2017/10/14(土) 22:19:53.51 ID:A+SmlCyw.net] https://github.com/Microsoft/TypeScript/wiki/What%27s-new-in-TypeScript#localized-diagnostics-on-the-command-line typescript 2.6 ローカライズが全面的に入るっぽい
924 名前:デフォルトの名無しさん mailto:sage [2017/10/14(土) 22:27:47.84 ID:+JNXgfir.net] 非英語Issueが次々と投げ込まれていくところを想像すると胸が熱くなるな 誰がこういうの決定してんだろ
925 名前:デフォルトの名無しさん mailto:sage [2017/10/15(日) 13:45:26.13 ID:29cWpLj+.net] いままで入ってなかったのが不思議
926 名前:デフォルトの名無しさん mailto:sage [2017/10/15(日) 21:03:43.86 ID:U2nzSUai.net] コマンドラインメッセージが日本語化されるの?いらんだろそれ
927 名前:デフォルトの名無しさん mailto:sage [2017/10/15(日) 21:27:06.79 ID:nlQ3NzZf.net] ローカライズありがたいけどところどころ明らかな誤訳が混じってる
928 名前:デフォルトの名無しさん mailto:sage [2017/10/16(月) 08:15:42.86 ID:eZyML9Cw.net] 誤訳を見つけてくれてありがとう お前のプルリクを待ってるぜ!
929 名前:デフォルトの名無しさん mailto:sage [2017/10/16(月) 11:31:48.47 ID:ZoMoe7Af.net] かえってわかりにくくなる
930 名前:デフォルトの名無しさん mailto:sage [2017/10/16(月) 12:12:06.22 ID:Z0srHJQs.net] コマンドラインよりhandbookの方を翻訳してほしいよね
931 名前:デフォルトの名無しさん mailto:sage [2017/10/17(火) 08:07:20.81 ID:ALnPGbmE.net] 2.4.2から2.5.3に上げたら、User defined type-guard functionとTagged union typeの組み合わせで 型をうまく判断してくれなくなった。バグか仕様変更かどっちだろう?
932 名前:デフォルトの名無しさん mailto:sage [2017/10/17(火) 08:10:24.70 ID:1Byit6P4.net] issueあさりにいけ
933 名前:デフォルトの名無しさん mailto:sage [2017/10/18(水) 22:10:52.67 ID:wBhwyrKl.net] TypescriptでReact使ってる人にお聞きしたいんですけど Componentを継承して新しいコンポーネントを作るわけですけど、 class CurrentComponet extends React.Component<Props> { } とつくってさらに class NewComponet extends CurrentComponet { } とやってNewComponetをつくるとしますよね。 それはそれで使えるんですけどNewComponetのpropsはCurrentComponetのpropsしか使えないですよね。 PropsをNewComponet用に拡張する方法ってないですかね? 素直に一からComponent作るしかないでしょうか
934 名前:デフォルトの名無しさん [2017/10/18(水) 23:58:41.35 ID:5bsiTMSo.net] >>893 class CurrentComponet<T extends Props> extends React.Component<T> { }
935 名前:デフォルトの名無しさん mailto:sage [2017/10/19(木) 09:09:43.33 ID:33xh/nBB.net] >>894 うほー。神よ! でもぶっちゃけ何が起こってるのかよくわかってないです。 > class CurrentComponet<T extends Props> extends React.Component<T> { 上記Tは一体いつ解決されてるんですかね。 そもそもTypeScriptでReactのコンポーネントの書き方ってこっちが正解だったりするんで?
936 名前:デフォルトの名無しさん [2017/10/19(木) 20:20:28.20 ID:LXr9z35K.net] それか class CurrentComponet<T> extends React.Component<T&Props> { } でもいいな こっちが使う側からすると楽かも >>895 説明面倒だからggrks
937 名前:デフォルトの名無しさん mailto:sage [2017/10/20(金) 00:43:33.60 ID:aPV4O3Wb.net] moment.js 便利だな 今更だが
938 名前:デフォルトの名無しさん mailto:sage [2017/10/21(土) 12:56:00.66 ID:VqKLKVGY.net] >>896 単純にReact.d.tsと見比べてみると良い。結局使う時に<Props>を使えるようにCurrentComponet<T> としておくのが目的 ジェネリクス型に追加情報を与えるための概念と考えると分かりやすい。 <T>をTopに残しておいてそこを解決すると React.Component<T>も自動的に追従する
939 名前:デフォルトの名無しさん mailto:sage [2017/10/22(日) 05:02:18.10 ID:NdVgkCyx.net] >>897 イミュータブル好きならこっちやぞ。 https://github.com/date-fns/date-fns
940 名前:デフォルトの名無しさん mailto:sage [2017/10/22(日) 05:09:40.65 ID:NdVgkCyx.net] >>871 いろいろあるけどちゃんと探した? 今さら誰かに再発明してもらって↓とかに勝てるの? https://codesandbox.io
941 名前:名無しさん@そうだ選挙に行こう! Go to vote! mailto:sage [2017/10/22(日) 11:51:56.71 ID:r0jppfs8.net] >>900 おっ。そこは知ってたけどTypeScriptのコード補完効くとしらなかったわ。ありがと
942 名前:デフォルトの名無しさん mailto:sage [2017/10/23(月) 21:24:20.12 ID:xr09IWoG.net] 地味にawait書き忘れてちゃんと動かないというパターンが多発してるんですが TSLintでawait入れ漏れで指摘する機能ってないですかね?
943 名前:デフォルトの名無しさん mailto:sage [2017/10/23(月) 23:05:48.01 ID:zzY32qse.net] >>902 c#だと書き忘れた場合はコンパイラが警告出してくれるんだけどね
944 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 07:24:42.96 ID:I1PPVtSx.net] もう10月終わるけどまた駆け込みリリースかね
945 名前:デフォルトの名無しさん [2017/11/01(水) 02:44:19.40 ID:x/3omok5.net] Announcing TypeScript 2.6 https://blogs.msdn.microsoft.com/typescript/2017/10/31/announcing-typescript-2-6/
946 名前:デフォルトの名無しさん mailto:sage [2017/11/01(水) 23:51:55.80 ID:x/3omok5.net] >>905 TypeScript 2.6.1 変更点 https://qiita.com/vvakame/items/d2c7cf142fa0af39d2d5
947 名前:デフォルトの名無しさん mailto:sage [2017/11/02(木) 12:10:31.71 ID:Gd7lD1Ih.net] Angular 5.0.0がリリースされました https://medium.com/angular-japan-user-group/version-5-0-0-of-angular-now-available-9746ef966c7d はやい、はやいよぉ…
948 名前:デフォルトの名無しさん [2017/11/02(木) 20:11:59.50 ID:eNK4k+UN.net] ffのアップデート並み
949 名前:デフォルトの名無しさん mailto:sage [2017/11/02(木) 22:27:03.79 ID:taAN7xor.net] なお間に合わなかったバグフィクスはガンガン後回しにしてリリースする模様
950 名前:デフォルトの名無しさん mailto:sage [2017/11/03(金) 03:45:19.14 ID:kJ3ZRkrN.net] アジャイルってそういうもんだし
951 名前:デフォルトの名無しさん mailto:sage [2017/11/03(金) 05:18:11.47 ID:IsjJm0uL.net] >>907 アンギュラーってぶっちゃけ使ってる人いるの?
952 名前:デフォルトの名無しさん mailto:sage [2017/11/03(金) 07:42:27.47 ID:gwa0lp/v.net] Google自身が使ってないのにどうして使うというのか
953 名前:デフォルトの名無しさん mailto:sage [2017/11/08(水) 20:05:35.96 ID:uhXC9xV7.net] https://html5experts.jp/shumpei-shiraishi/24660/amp/
954 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 02:41:12.23 ID:EwcJ+uHe.net] 2.6になったらコンパイルエラーが多発する。react-redux のconnect周りで。 なんでー
955 名前:デフォルトの名無しさん [2017/11/12(日) 13:16:12.66 ID:oQrEnmVF.net] MEAN勉強中なのにangulerってマイナーなの?ショック
956 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 21:21:37.41 ID:UiY7gN7d.net] コンストラクタを複数定義できないのでしょうか?? うーん。
957 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 21:28:52.67 ID:UiY7gN7d.net] オーバーロードはできるけど、実装は1つとか・・ JSONへのシリアライズ・デシリアライズは自分で制御するので、 constructor(json: any)と construcotr(parameter1: type1, parameter2: type2) 二つ用意したいんですけど。最初は construcotr(parameter1: type1, parameter2: type2)だけ用意しえ、 staticメソッドの方に statis parseJson(json: any): Class1として、そこでconstrucotr(parameter1: type1, parameter2: type2)を呼んでたんですけど、 これだと子に親のインスタンスの参照渡せないんですよね。
958 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 21:37:57.59 ID:UiY7gN7d.net] ごめんなさい。これじゃ何いってるからんし、意味不明ですね。
959 名前:デフォルトの名無しさん mailto:sage [2017/11/26(日) 00:19:08.88 ID:mkIW06Zo.net] >>916 大分お疲れなようで…… Discriminated Unionsを使うとか? https://jsbin.com/bequjusaya/1/edit?js,console
960 名前:デフォルトの名無しさん mailto:sage [2017/11/26(日) 04:33:36.78 ID:Aye3R7gH.net] オブジェクト指向を学ぼう
961 名前:デフォルトの名無しさん [2017/11/26(日) 23:18:17.65 ID:rkyPHH9I.net] 願望なんだけど Typescriptは言語自体がWebアプリ開発用に 丸ごとフレームワークになったら良いと思う。 Flash(flex)のActionscript3も フレームワーク化達成した様だし。 flex.apache.org/
962 名前:デフォルトの名無しさん [2017/11/26(日) 23:25:22.11 ID:pQh5Iwo2.net] >>921 JSのスーパーセット目指してるんだし無理に決まってんだろ
963 名前:デフォルトの名無しさん mailto:sage [2017/11/26(日) 23:28:03.09 ID:rkyPHH9I.net] すみませんリンク先間違ってました。 royale.codeoscopic.com/
964 名前:デフォルトの名無しさん mailto:sage [2017/11/26(日) 23:33:18.08 ID:i1z8rFU6.net] >>921 TypeScriptでkoa.js使えばいいんでわ? なんか違うの?
965 名前:920 mailto:sage [2017/11/26(日) 23:51:34.59 ID:rkyPHH9I.net] >>924 すみませんkoa.jsの存在を知りませんでした。 良さげなので検討してみます。
966 名前:デフォルトの名無しさん mailto:sage [2017/12/01(金) 19:48:21.81 ID:Qr863YVP.net] 人気沸騰中のはずなのに年々参加者が減っていきついにアドカレ作られすらしなくなったTypeScriptさん
967 名前:デフォルトの名無しさん mailto:sage [2017/12/01(金) 20:26:25.44 ID:6V2me3Iy.net] TypeScript関係ないけど、アドカレVue.jsすげぇな。React人気ないのか??
968 名前:デフォルトの名無しさん mailto:sage [2017/12/01(金) 20:32:35.43 ID:u+SbUYxr.net] FBのゴタゴタがきいてるんかな
969 名前:デフォルトの名無しさん mailto:sage [2017/12/01(金) 22:04:45.62 ID:jFvanr8n.net] アドカレ的にはjs扱いなんじゃね?
970 名前:デフォルトの名無しさん mailto:sage [2017/12/01(金) 23:41:41.28 ID:tkoMYkG1.net] ES6普及したから AltJSへの興味が薄れてるんじゃね?
971 名前:デフォルトの名無しさん mailto:sage [2017/12/01(金) 23:55:12.47 ID:jFvanr8n.net] まだasync await周りが完成してないけどね。 とりあえずmapとかfilterが普通に使えるようになってほしい
972 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 10:19:06.97 ID:y5gxd1px.net] stackblitzいいな。マジでplayground系の決定版感ある。 https://stackblitz.com/edit/react-ts
973 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 16:42:58.78 ID:y5gxd1px.net] typeScriptのinterfaceで配列の要素数を制約する方法ってありますかね?
974 名前:デフォルトの名無しさん [2017/12/14(木) 19:30:41.65 ID:lO2D+k3i.net] >>932 vscodeみてーなUIだな
975 名前:デフォルトの名無しさん [2017/12/14(木) 19:31:21.04 ID:lO2D+k3i.net] >>933 何に使うの? 空でない配列なら分かるけど
976 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 19:43:58.65 ID:ZmHWuRBr.net] tupleとして扱う
977 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 20:36:42.23 ID:LW4O1R2X.net] tuple使え
978 名前:デフォルトの名無しさん [2017/12/14(木) 22:26:15.12 ID:lO2D+k3i.net] もしかして:タプル
979 名前:機能を知らない let vec:[number,number=[1,1]; [] [ここ壊れてます]
980 名前:デフォルトの名無しさん [2017/12/14(木) 22:27:31.03 ID:lO2D+k3i.net] ミス let vec:[number,number]=[1,1]; もちろんこれでもOK type Vec=[number,number]; let vec:Vec=[number,number];
981 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 22:29:51.71 ID:LW4O1R2X.net] 前にもタプルあるのにタプル欲しい言ってたやついたような
982 名前:デフォルトの名無しさん [2017/12/14(木) 23:16:24.01 ID:lO2D+k3i.net] https://www.typescriptlang.org/docs/handbook/advanced-types.html タプルもだけど、このページ読んでない人多くね? TypeScript語るなら&、|、is、keyofくらいマスターしておけよな
983 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 00:23:56.02 ID:okgNcKTb.net] >>938 すっかり忘れとりました。Enumとかも使ってなかった。 >>941 ですよね。 >>934 online vscode と名乗ってる
984 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 10:29:49.56 ID:sajYuSyc.net] (´・ω・`) デコレータがなんの役に立つのかわからん…
985 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 12:12:33.81 ID:ehq3lI3U.net] 一時期使ってみたが全部取っ払って今は一切使ってない デコレータを使う設計自体が悪い 技術的負債になるワークアラウンドが不運にも市民権を得てしまったのがデコレータ デコレータを使うのは未熟者の証
986 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 12:39:37.56 ID:pWQR70OL.net] veu
987 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 13:09:01.78 ID:VJqK9zii.net] 使ってないけど、デコレータはDI(dependency injection)(依存性の注入)に使うんでしょ? そもそもそれが必要な事なのか知らんけど
988 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 16:08:57.23 ID:ehq3lI3U.net] DIはコンストラクタ注入だけでいい メソッドだの継承だのデコレータだの無駄に複雑なだけ
989 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 11:15:39.58 ID:Ab77UDQn.net] Angularもけっこう深い沼だな…
990 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 22:02:32.48 ID:c6/WUVVQ.net] 沼というか泥舟
991 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 16:05:22.54 ID:dnHAQQNy.net] ionic はタイタニックだしな
992 名前:デフォルトの名無しさん [2017/12/18(月) 13:13:38.64 ID:2IRqztoA.net] あげ
993 名前:デフォルトの名無しさん mailto:sage [2018/01/16(火) 20:27:44.97 ID:FhxZLFGY.net] interfaceを使ってるとjsonでセーブする時にすごく便利なんだけどメソッドが生やせないのが辛い。 なんとかならないかな
994 名前:デフォルトの名無しさん mailto:sage [2018/01/17(水) 16:20:55.33 ID:AWcujNq7.net] 手動で保存・復元すればOK
995 名前:デフォルトの名無しさん mailto:sage [2018/01/17(水) 16:23:04.93 ID:AWcujNq7.net] まぁ、classレベルならいいけど、interfaceレベルだときついかもしれんが。
996 名前:デフォルトの名無しさん mailto:sage [2018/01/18(木) 18:36:14.16 ID:c8bYFLwE.net] Announcing TypeScript 2.7 RC https://blogs.msdn.microsoft.com/typescript/2018/01/17/announcing-typescript-2-7-rc/ 毎回RC版出してるけど、VSCodeやTSって更新早いからいらないと思う
997 名前:デフォルトの名無しさん mailto:sage [2018/01/24(水) 05:53:19.16 ID:V1qhcEkf.net] localStorageとかreduxとか使ってると意図せず型変換が入ってtscはDate型の想定なのに実際はstringという状況マジ勘弁してください。
998 名前:デフォルトの名無しさん mailto:sage [2018/01/24(水) 08:16:36.90 ID:BFkGLEDk.net] >tscはDate型の想定なのに実際はstringという状況 そりゃ不適切な型付けしてしまっただけじゃね? stringを入る可能性があるanyをDateと決め打ちしたとか。
999 名前:デフォルトの名無しさん mailto:sage [2018/01/25(木) 22:12:47.33 ID:cFDHLCLJ.net] DateがJSON serializableじゃないって話でTypeScriptの問題でもない
1000 名前:デフォルトの名無しさん mailto:sage [2018/01/29(月) 11:43:46.31 ID:16WZc9vb.net] インスタンスではなくclass を引数に取った関数を作りたいんですが、良い方法がないでしょうか? redux.connectをラップする関数を作りたくて上記手段を求めています サンプルコードはいかにおいています https://goo.gl/FF5jFc
1001 名前:デフォルトの名無しさん mailto:sage [2018/01/29(月) 11:48:46.22 ID:16WZc9vb.net] >>959 すんません。自己解決 interface IBase { new (message: string): Base; }
1002 名前:デフォルトの名無しさん mailto:sage [2018/01/29(月) 14:06:48.67 ID:16WZc9vb.net] 返り値とか省略すると推論してくれますけど推論の結果を取得する方法ってないですかね? vscodeでカーソルを合わせてると出るんですけどカーソル合わせている間しか出ないのでコピペしづらくて。
1003 名前:デフォルトの名無しさん mailto:sage [2018/01/29(月) 16:26:17.34 ID:g7co9PB2.net] >>960 Baseって何を指すの?
1004 名前:デフォルトの名無しさん mailto:sage [2018/01/31(水) 10:23:18.30 ID:V9tZNzCA.net] TypeScriptでglobal import的なものってないですかね? ロガーを作ったんですけど、それを毎回importするのがしんどくて
1005 名前:デフォルトの名無しさん mailto:sage [2018/02/01(木) 14:40:42.51 ID:ma2l7eSX.net] Announcing TypeScript 2.7 https://blogs.msdn.microsoft.com/typescript/2018/01/31/announcing-typescript-2-7/
1006 名前:デフォルトの名無しさん mailto:sage [2018/02/05(月) 22:05:36.77 ID:wQgqkVj5.net] >>964 TypeScript 2.7.1 変更点 https://qiita.com/vvakame/items/3a1e628e53a5dd99dfe0 2.8 Conditional types https://github.com/Microsoft/TypeScript/pull/21316 Type inference in conditional types https://github.com/Microsoft/TypeScript/pull/21496
1007 名前:デフォルトの名無しさん mailto:sage [2018/02/05(月) 23:37:11.09 ID:Rv6TwvHy.net] Conditional types関連は既にmergedなのか
1008 名前:デフォルトの名無しさん mailto:sage [2018/02/06(火) 05:58:37.68 ID:vXstL54C.net] 小躍りしながら使ってみたところ速攻でバグにぶち当たって無事死亡 修正されるまで一回休み
1009 名前:デフォルトの名無しさん mailto:sage [2018/02/13(火) 05:54:42.41 ID:kAM/OKSF.net] 型を後付した言語の限界があるよな。 ストレージに一度保存して意図せずjsonになってたり、関数のインターフェース上nullやundefind許容しない設定にしてても結局js側でnullの可能性のある値を渡されたらバグるし。 例えばjsとtsの境界部分。 モジュールとして外出ししている関数とかのインターフェースとかをきちんとnullチェックしてくれるコードを自動で埋め込んでくんないかな。
1010 名前:デフォルトの名無しさん mailto:sage [2018/02/13(火) 06:47:09.07 ID:a2BGtfue.net] それは信頼できないjsが悪いだけだろ 外部のクソコードはどうにもならん
1011 名前:デフォルトの名無しさん mailto:sage [2018/02/13(火) 09:13:05.77 ID:cOH/iFjL.net] TypeScriptが目指してるのはコンパイル時型チェックであって実行時型チェックではない コンパイル時型チェックならパフォーマンスに影響はない(処理系によってはむしろ向上する)が実行時型チェックは明確にパフォーマンスが落ちる PHPなんかは実行時型チェックを実装しちゃったもんだからクラスのメンバに型宣言するRFCすらリジェクトされてる
1012 名前:デフォルトの名無しさん mailto:sage [2018/02/13(火) 15:21:25.94 ID:xpZzv5qK.net] >>970 ですよね。それはわかっているんですが、、、、 せめてlint的な感じでjs向けのインターフェースが null| undefinedの可能性があるから直せみたいな警告が出るといいんですけど。 async func 内の await記入漏れと一緒にほしい。
1013 名前:デフォルトの名無しさん mailto:sage [2018/02/13(火) 15:22:21.77 ID:xpZzv5qK.net] blog.yux3.net/entry/2017/06/08/202859 あと objectとObjectがあるって知らなかった。 hyperappの型定義で始めて見た。
1014 名前:デフォルトの名無しさん mailto:sage [2018/02/13(火) 22:00:08.76 ID:XkJQyT0D.net] jsから呼ばれる部分はどうやってもチェックしようがないと思うぞ。
1015 名前:デフォルトの名無しさん mailto:sage [2018/02/20(火) 18:34:14.34 ID:KguAhC0Q.net] yarnのワークスペースを使用して、Create React AppとCreate React Native App (Expo) で共通のコードを共有する https://taiyaq.com/contents/gk1Kr17x8vW9LIozNo51lez9rr を参考にしてcreate-react-app でtypescriptプロジェクトを作ったんだけど ワークスペース内での型情報の共有がうまくいかない。 それぞれ単体では動くんだけど。既に試している人っている?
1016 名前:デフォルトの名無しさん [2018/02/26(月) 16:47:13.03 ID:Y4Glcgpd.net] ブラウザで動く個人的なちょっとしたものしか作らなくて、 ライブラリはimportしないで自分でscriptタグで読み込んでるから、 @typesの定義だけ欲しいんだけど、今って中身のないstubばかりで importしないと使えないんだけど、これってどうすればいいのでしょうか? 仕方なくファイルをルートにコピーして、意味がわからないまま export as namespace hogehoge; みたいな文をくっつけたりして 何とか機能するようにしてるけど、非常に困ってます
1017 名前:デフォルトの名無しさん mailto:sage [2018/02/26(月) 17:28:19.81 ID:wXoocKSL.net] .d.tsファイルでインポートすればいいはず
1018 名前:デフォルトの名無しさん mailto:sage [2018/02/26(月) 19:51:46.67 ID:Y4Glcgpd.net] いろいろやってみたけど、なかなか上手くいかない。 tsc --listFilesってやると、定義自体は読み込めてるようなんだけど、 要するに、d.tsファイルがIsomorphic modules (UMD global)
1019 名前:ってやつに対応した書き方になってなくて、 それに対応するためにexport as namespace hogehoge; が必要だったりするらしい https://www.typescriptlang.org/docs/handbook/modules.html#umd-modules [] [ここ壊れてます]
1020 名前:デフォルトの名無しさん mailto:sage [2018/02/26(月) 21:54:01.34 ID:0Cvn/PR2.net] >>975 ちょっと言ってることがわからないからこういうときは小さいサンプルでも作ってどっかにあげてみてくんない? そしてそうやって小さくまとめてみると意外と自己解決したりするもんだ。
1021 名前:デフォルトの名無しさん mailto:sage [2018/02/26(月) 23:16:55.53 ID:Y4Glcgpd.net] 例えばmomentを使う場合、scriptタグでmoment.jsを読み込んでいれば、 自分のjsではconsole.log(moment().format("YYYYMMDD hh:mm:ss"))みたいに使えます。 そのjsをtypescriptで書こうとした場合、moment()の定義が必要になります。 そこで@types/momentをインストールするわけですが、@typesはオワコンらしく、 実際にはmoment自体のパッケージもインストールされて、その中の定義ファイルが 参照されるようになります。 しかし、自分が使おうとしているmoment()は、トップレベルのwindow.moment()なわけですが、 定義ファイルでは、そのことが考慮されていないために定義を見つけられないようです。 (エラーは出ますが、anyとしてコンパイルはされます。) その定義を見つけらるようにするおまじないが、export as namespace moment;のようです。 結局は、モジュールシステムに合わせた定義ファイルの書き方を 理解している人が少ないのだと思います。 export hogehoge とか export default hogehoge とか export = hogehogeとか わけわかりません。
1022 名前:デフォルトの名無しさん mailto:sage [2018/02/27(火) 01:53:35.35 ID:ZLoGDkNB.net] >>979 @typesは別にオワコンじゃない。 型定義を提供するのに2つのルートがあるってだけ。 momentは作者側で型定義を提供してくれてるってだけ。 ところで解決したってことでいいんだよね? /// <reference path="./mytypes/moment.d.ts"/> みたいな感じでカスタムしたd.tsを読めばいいだけだし。
1023 名前:デフォルトの名無しさん mailto:sage [2018/02/27(火) 01:59:51.55 ID:ZLoGDkNB.net] つーかUMD対応中みたいだね https://github.com/moment/moment/pull/3688 ワークアラウンドとして import * as _moment from 'moment'; export as namespace moment; export = _moment; というd.tsを作ってimportすればいい
1024 名前:デフォルトの名無しさん mailto:sage [2018/02/27(火) 12:44:23.84 ID:XDcEi9Sw.net] import使っちゃった意味ないんだけどね vueみたいに複数のファイルに分けられちゃうと大幅に変えないといけないから 気軽にプルリクできない感じがする だが自分でその場しのぎの対応してると、バージョン上げられた時に詰む
1025 名前:デフォルトの名無しさん mailto:sage [2018/02/27(火) 12:53:20.87 ID:XDcEi9Sw.net] 勘違いしてた import _moment from 'moment'; export as namespace moment; export = _moment; とか、 import _Vue from 'Vue'; export as namespace Vue; export = _Vue; みたいに書けばいいのか。 すごい。解決した
1026 名前:デフォルトの名無しさん mailto:sage [2018/03/01(木) 22:44:29.35 ID:V7eofqS1.net] 次スレカモン
1027 名前:デフォルトの名無しさん mailto:sage [2018/03/12(月) 23:33:32.22 ID:ZJVFDbUv.net] TSConf 2018 https://tsconf.io/ 初のカンファか
1028 名前:デフォルトの名無しさん mailto:sage [2018/03/16(金) 08:23:22.72 ID:K5Isy9NI.net] Announcing TypeScript 2.8 RC https://blogs.msdn.microsoft.com/typescript/2018/03/15/announcing-typescript-2-8-rc/
1029 名前:デフォルトの名無しさん mailto:sage [2018/03/16(金) 14:11:16.40 ID:HcB/quXY.net] >>984 次スレのテンプレに入れたほうがいいものとかある?
1030 名前:デフォルトの名無しさん mailto:sage [2018/03/17(土) 00:42:53.78 ID:4Xu/HAYS.net] tsconfigのexcludeの項目を、compilerOptionsの中に書いてて、何でダメなんだろう悩んじゃった 設定はcompilerOptionsの中に書くものと思い込んでて、全然気付けなかった
1031 名前:デフォルトの名無しさん mailto:sage [2018/03/17(土) 21:01:59.42 ID:zUTKt+H5.net] >>987 リポジトリとかWikiとかWhat'sNewあたり? あとは流れで
1032 名前:デフォルトの名無しさん mailto:sage [2018/03/28(水) 08:14:57.22 ID:3iq+90ex.net] Announcing TypeScript 2.8 https://blogs.msdn.microsoft.com/typescript/2018/03/27/announcing-typescript-2-8/
1033 名前:デフォルトの名無しさん [2018/04/02(月) 17:52:32.10 ID:G4IZotVZ.net] 俺のtypescriptが好きすぎる感情をどこにぶつけていいかわからない
1034 名前:デフォルトの名無しさん mailto:sage [2018/04/02(月) 18:53:21
] [ここ壊れてます]
1035 名前:.97 ID:aSG3UjFJ.net mailto: Qiitaでええやろ [] [ここ壊れてます]
1036 名前:デフォルトの名無しさん mailto:sage [2018/04/03(火) 10:37:57.34 ID:0rmSrban.net] >>991 俺も俺も!。qiitaでもいいしココでもいいよ!!
1037 名前:デフォルトの名無しさん [2018/04/03(火) 11:33:16.29 ID:R6gDm2yr.net] 次スレよろ
1038 名前:デフォルトの名無しさん mailto:sage [2018/04/05(木) 19:58:55.32 ID:0c0qrJs0.net] スレ立てにぶつけることが決まったな
1039 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 07:03:30.59 ID:yIya3QmH.net] どうしたん?人気あるわりにここ静かやん
1040 名前:デフォルトの名無しさん [2018/04/20(金) 09:50:01.67 ID:WJk0jxxj.net] 続きはCMのあとで!
1041 名前:デフォルトの名無しさん mailto:sage [2018/04/24(火) 20:06:57.83 ID:TUZ43qB9.net] はよ次スレ
1042 名前:デフォルトの名無しさん [2018/04/24(火) 21:50:54.24 ID:BAt1Eldp.net] うむ
1043 名前:デフォルトの名無しさん mailto:sage [2018/04/26(木) 21:48:57.62 ID:mMDBzDaB.net] 次 https://mevius.5ch.net/test/read.cgi/tech/1524746903/
1044 名前:デフォルトの名無しさん [2018/04/26(木) 21:52:07.15 ID:vM7mL5EC.net] safariが次のIEと呼ばれているように、 Typescriptは次のcoffeescriptと言われているwww
1045 名前:1001 [Over 1000 Thread.net] このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 1092日 3時間 14分 38秒
1046 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています