1 名前:デフォルトの名無しさん [2018/04/26(木) 21:48:23.07 ID:mMDBzDaB.net] www.typescriptlang.org/ JavaScript that scales. TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. Any browser. Any host. Any OS. Open Source. part1 https://peace.5ch.net/test/read.cgi/tech/1349187527/ part2 https://mevius.5ch.net/test/read.cgi/tech/1430386649/
698 名前:デフォルトの名無しさん mailto:sage [2020/11/09(月) 19:43:09.64 ID:m4E6C9lQ.net] 今からTypeScriptやるならDenoでいーの? あっギャグじゃないです真面目な質問
699 名前:デフォルトの名無しさん [2020/11/09(月) 21:13:08.03 ID:EKGzterf.net] 作った本人は デノ って発音してるように聞こえる
700 名前:デフォルトの名無しさん mailto:sage [2020/11/09(月) 21:43:52.92 ID:nCMtc7Yy.net] Denoあんまり詳しくないけど、何やりたいかにもよると思う Web開発をする分にはまだNodeなんじゃないかな 周辺のツールやライブラリが揃ってるので CLIツールとかならDenoでいーんでの?
701 名前:デフォルトの名無しさん mailto:sage [2020/11/11(水) 11:00:58.08 ID:UmNDS4oo.net] >>671 jsx/tsx でもイケるようになったね
702 名前:デフォルトの名無しさん mailto:sage [2020/11/17(火) 22:53:14.47 ID:slG9DoRm.net] https://ncjamieson.com/prefer-interfaces/ https://github.com/microsoft/TypeScript/wiki/Performance 以前 type 推しの人がいたけどやっぱり interface か…
703 名前:デフォルトの名無しさん mailto:sage [2020/11/20(金) 14:22:41.76 ID:Us83CHd5.net] Announcing TypeScript 4.1 https://devblogs.microsoft.com/typescript/announcing-typescript-4-1/
704 名前:デフォルトの名無しさん mailto:sage [2020/11/20(金) 21:01:29.75 ID:2CLFT5fk.net] どんどん複雑になるなぁ ついていけまへんわ
705 名前:デフォルトの名無しさん mailto:sage [2020/11/20(金) 21:22:14.83 ID:2ALlQdvp.net] 逆にバージョンアップでシンプルになっていく言語ってあるの? 互換を完全に切るような言語なら可能だろうけど
706 名前:デフォルトの名無しさん mailto:sage [2020/11/20(金) 21:41:42.91 ID:lbWKfW5j.net] >>679 Schemeが小さくはなったな ま、大規模に使われてる言語じゃないから出来る芸当だ
707 名前:デフォルトの名無しさん mailto:sage [2020/11/20(金) 21:44:46.30 ID:4mUoVYL/.net] 言語機能が増えたからと言って全部使う必要はないしな たまにどこかで使われてるのを見てあれってなったら調べるくらいで良い
708 名前:デフォルトの名無しさん mailto:sage [2020/11/20(金) 21:50:47.55 ID:lbWKfW5j.net] JavaScriptは動的型だけど、動的型は意識しなくても複雑な事が出来てしまう TypeScriptはそれらに対して何としてでも型を付けたいんだよ それだけの事 JavaScript自体は何も変わってない
709 名前:デフォルトの名無しさん mailto:sage [2020/11/20(金) 23:06:21.09 ID:YMHZwsA3.net] もうaltJS風WebAssemblyコンパイラにして
710 名前:デフォルトの名無しさん mailto:sage [2020/11/20(金) 23:26:29.58 ID:CQfd4Gtb.net] >>683 つ AssemblyScript
711 名前:デフォルトの名無しさん mailto:sage [2020/11/21(土) 01:50:51.61 ID:uA84MfqB.net] コンパイラ型ほ生産性低いよ。
712 名前:デフォルトの名無しさん mailto:sage [2020/11/21(土) 04:03:36.16 ID:KUTDu7Bm.net] template literal typesなんていれるから 型レベルSQLとかおかしな事やり始めてるし https://github.com/codemix/ts-sql
713 名前:デフォルトの名無しさん mailto:sage [2020/11/21(土) 09:57:45.60 ID:y2efXPmb.net] くっそ遅くなりそう
714 名前:デフォルトの名無しさん mailto:sage [2020/11/21(土) 10:46:50.16 ID:+IqFTLxs.net] C++並にコンパイル遅くなったりしてね。 実質マクロだから実行時は速いんちゃう?
715 名前:デフォルトの名無しさん [2020/11/21(土) 10:54:34.52 ID:QRxilPan.net] >>680 あれ小さくなったって言えんの? r7rs なんて common lispよりでかいじゃん。 コアだけなら小さいだろうけどコアだけじゃなんもできんだろ。
716 名前:デフォルトの名無しさん mailto:sage [2020/11/21(土) 12:06:56.10 ID:FiI26J/z.net] うちのtsプロジェクト、tslintも入れてビルドに10分くらいかかってる。 前に -incremental 試してみてなんかの理由で断念したんだよな。 もう一度トライしてみるか。
717 名前:デフォルトの名無しさん mailto:sage [2020/11/21(土) 12:34:04.91 ID:8nB0jPpm.net] スクリプトのメリット完全に失っててワロタ スクリプトはビルドしちゃいけないんだよ IDEでパラレルLintするぐらいならいいけどな ビルドしないと動きませんじゃ本末転倒でなにがなんだか ビルドするならC#とかGoでやりゃいい
718 名前:デフォルトの名無しさん mailto:sage [2020/11/21(土) 13:16:27.04 ID:L7J0TnQj.net] ts-nodeならビルド不要だけど、それとは違う話か TypeScriptを直に実行できる処理系は今後も現れないだろうな
719 名前:デフォルトの名無しさん mailto:sage [2020/11/21(土) 13:30:05.02 ID:y2efXPmb.net] >>691 >ビルドするならC#とかGoでやりゃいい ブラウザで使うのが現実的じゃない
720 名前:デフォルトの名無しさん mailto:sage [2020/11/21(土) 13:42:58.96 ID:uA84MfqB.net] Dart始めました
721 名前:デフォルトの名無しさん mailto:sage [2020/11/21(土) 14:02:54.86 ID:xoaJjvLB.net] そもそもスクリプト言語でスクリプト言語向きじゃない大規模なことをやろうとしてるからこれができたわけで、言語のせいにするのは違う そもそも今のWeb(アプリ)はTS使ってなくてもビルドしてるものばっかりだし
722 名前:デフォルトの名無しさん mailto:sage [2020/11/21(土) 14:35:34.39 ID:FiI26J/z.net] まあ、べつに「スクリプトのメリット」を期待してtsを使ってるわけじゃないしな。 とはいえビルド時間が短縮できるならそれに越したことはないが。
723 名前:デフォルトの名無しさん mailto:sage [2020/11/21(土) 15:32:21.74 ID:+IqFTLxs.net] watch使うからビルド速度そんなに気にならないなぁ
724 名前:デフォルトの名無しさん mailto:sage [2020/11/21(土) 18:31:06.90 ID:/DiusCOy.net] >>689 RSR7-smallは5をベースにしてるから、それでなんも出来ないとか言ったら、それまでのSchemeを全否定じゃんw
725 名前:デフォルトの名無しさん mailto:sage [2020/11/21(土) 18:58:48.16 ID:+IqFTLxs.net] いっそガチでマクロ入れてくれたら色々捗るなぁ。凄く読みにくくなるだろうけど。 そこまで行かなくとも、(内部的に複数の関数を持つ)関数オーバーロードとか欲しいかも
726 名前:デフォルトの名無しさん mailto:sage [2020/12/09(水) 21:30:42.37 ID:gfVn9W3hf] 型定義ファイルを自作する場合どこに置くのがセオリーでしょうか? プロジェクトルートに@typesフォルダ作ってその中でしょうか?
727 名前:デフォルトの名無しさん mailto:sage [2020/12/18(金) 05:11:45.78 ID:7UB7snzp.net] ブラウザ使っててよく Webページ が固まることがあるから、ちゃんとUIスレッド以外で処理しろよとよく思ってたが JavaScript 自体がシングルスレッドだったのね WebWoker とかいうのもあるみたいだが、MDN見るに、 言語側でがっつり管理するからスレッドセーフあんまり考慮しなくてもいいみたいだし、これは楽でいいわ Java やってて、クリティカルセクションの処理が一番嫌いだった デッドロックの原因探すの大変すぎた
728 名前:デフォルトの名無しさん mailto:sage [2020/12/18(金) 05:52:13.96 ID:427cIB03.net] そもそもIO待ちにスレッドを使うのがナンセンスだったんだよな
729 名前:デフォルトの名無しさん mailto:sage [2020/12/18(金) 07:23:19.35 ID:7UB7snzp.net] まぁでも、 JavaScript のソースコード内に書いたものが全部同じスレッドで走ってる ってだけで、setTimeout とかの実装内では普通に別スレッド走ってるのか。 そりゃそうだよな、そうしないと非同期処理なんてどうあがいても不可能だものね。
730 名前:デフォルトの名無しさん mailto:sage [2020/12/18(金) 09:04:21.16 ID:TR+u0YNG.net] 非同期処理はスレッドの場合とそうでない場合の2種類ある そうでない場合は基本的にハードウェア割り込みで実装されてる タイマーとか通信処理
731 名前:ニか ファイルアクセスもOS毎に非同期APIが有るけど、libuvは互換性の為に敢えて同期APIを使う処理をスレッドプールに投げているようだ [] [ここ壊れてます]
732 名前:デフォルトの名無しさん mailto:sage [2020/12/18(金) 09:10:54.87 ID:TR+u0YNG.net] setTimeoutはスレッドを使ってない様に思うけど、結局の所ユーザー側でそれを知る術が無い
733 名前:デフォルトの名無しさん mailto:sage [2020/12/18(金) 12:01:30.61 ID:hVx5pFA4.net] >>701 の問題はスレッドがどうとか関係なくて、html中のある個所の内容が決まらないと 全体のレンダリングができない構造になっていたとか、jsをダウンロードしないと レンダリングされないのにその取得に時間がかかっているとかそんなところだろうな。
734 名前:デフォルトの名無しさん mailto:sage [2020/12/18(金) 13:13:24.97 ID:7UB7snzp.net] 最近ないように思うけど、1つのページがブラウザ全体をストールさせることが多かったのよ そんでブラウザを起動し直さなければいけない その原因が、JS のスレッドと ブラウザのレンダリングスレッド(UIスレッド)が同じスレッドを共有してることにある DOM 書き換えてる最中に レンダリングされちゃうと、ページレイアウトがぐちゃぐちゃになるから、全部同じスレッドで処理してるんだけど、 JSの処理でUIが固まるのを防ぐには、JS の DOM 書き換え「以外」の操作を別スレッドでやって、レンダリングスレッドと同期処理すればいい (Java の synchronize とかの要領) DOM 自体が レンダリングスレッドに属してるのは、しょうがないと思う 昔、マルチスレッドで動作する UI ライブラリ の多くがデッドロックその他のバグでどうにもならなくなって廃棄された(Java でいう AWT) ということで、UI が固まるのにはスレッドは関係あると思うのよ まぁ書き方が悪かったのかもしれんが あと、JS がシングルスレッドなのはとても良いことだと思ってるからね、自分は マルチスレッド化したら、どのみち同期化処理に失敗して、デッドロックで今よりも固まること多くなるだろうから 参考にした: https://stackoverflow.com/questions/30932870/why-doesnt-javascript-get-its-own-thread-in-common-browsers
735 名前:デフォルトの名無しさん mailto:sage [2020/12/18(金) 13:18:46.36 ID:7UB7snzp.net] JS で重めの処理をしたりバグがあっても、レンダリングスレッドと分離されてれば、 少なくとも UIが固まることはないということね(デッドロックがなければ) あと、上で最初に書いた、ブラウザ全体が固まるって話は語弊あったかもしれない ブラウザの各タブのレンダリングスレッドと、ブラウザ全体のUIスレッドは、多分分けられてるんだよね? 後でちゃんと調べます
736 名前:デフォルトの名無しさん mailto:sage [2020/12/18(金) 13:30:26.86 ID:Lq+ZSFwA.net] firefoxがフリーズすることは最近ちょくちょくあったな edgeに乗り換えたらきれいさっぱり直った ffはもうだめかもわからんね
737 名前:デフォルトの名無しさん mailto:sage [2020/12/18(金) 16:42:31.82 ID:7UB7snzp.net] https://gimhana-ds.medium.com/how-firefox-and-chrome-use-process-and-threads-f58f478561f0 ブラウザのスレッドの話ココに載ってた いろいろとたどってって疲れたので、全部は見てない Chrome が Tab ごとにプロセスで、Firefox が Tab にマルチスレッド Firefox もいっぱいプロセス作ってるけどね、ちゃんと読んだ人教えて
738 名前:デフォルトの名無しさん mailto:sage [2020/12/18(金) 16:44:48.76 ID:7UB7snzp.net] 「Firefox が Tab ごとにスレッド」って書きたかった そのスレッドも Main Thread = UI Thread (DOM 操作と JS 実行)が1個って意味で、 Raster Thread とか、Composer Thread とか多分他にもいろいろスレッド作る
739 名前:デフォルトの名無しさん [2020/12/18(金) 17:50:47.93 ID:m88v/MV8.net] すみません、TypeScriptって開発中はコンパイルなしでブラウザですぐに変更の動作確認をできますか?
740 名前:デフォルトの名無しさん [2020/12/18(金) 19:33:24.14 ID:JhB3G5yf.net] そういう時代が来るといいね
741 名前:デフォルトの名無しさん mailto:sage [2020/12/18(金) 19:42:28.67 ID:1RoKReGQ.net] Chromium
742 名前:Edge で、YouTube を見て、 動画を、5秒先へ進めたりすると、フリーズする [] [ここ壊れてます]
743 名前:デフォルトの名無しさん mailto:sage [2020/12/18(金) 21:47:42.98 ID:TR+u0YNG.net] WebWorkerは完全にスレッドだぞ 更にAtomicsを使えばスレッド間でatomicなデータ更新が出来る
744 名前:デフォルトの名無しさん mailto:sage [2020/12/18(金) 21:53:39.89 ID:6FItt2sR.net] WebWorker使いやすくて好き。並列処理面倒くさいからたまにしか使わないけど
745 名前:デフォルトの名無しさん mailto:sage [2020/12/18(金) 22:14:36.51 ID:TR+u0YNG.net] しかし、SharedArrayBufferはSpectreのせいでほぼ使えない状態だけどね Spectreに対応したCPUが普及しきらない限り有効にされる事は無い Webではもはや余計な機能追加はセキュリティーホールの元という認識でこれ以上進化することも無いだろう ただ、ストアからインストールするPWAはネイティブアプリの代わりだから、機能追加していくと思われる
746 名前:デフォルトの名無しさん mailto:sage [2020/12/18(金) 23:02:27.28 ID:2C+h9Dqf.net] ストアの収益減らすの絶対許さないマンのアップル vs Webから情報吸いたいマンのグーグル
747 名前:デフォルトの名無しさん mailto:sage [2020/12/19(土) 13:35:36.37 ID:biviwPkb.net] promise(もしくはasync/await)が使えたらシングルスレッドでも実質別段困らない 希ガス
748 名前:デフォルトの名無しさん mailto:sage [2020/12/19(土) 15:04:10.72 ID:+cK8B71a.net] WebWorkerとか知らんかった... メインと状態を共有しないのが明確なら便利そうだな さもなくばAsync/Awaitか
749 名前:デフォルトの名無しさん mailto:sage [2020/12/19(土) 15:41:20.87 ID:1ZOkfUtM.net] I/O boundはPromiseでいいけど CPU boundはPromiseじゃだめだからWebWorker使う マルチコアの有効活用
750 名前:デフォルトの名無しさん mailto:sage [2020/12/19(土) 18:53:18.58 ID:Z1BeWWR+.net] >>718 それは有る Appleはブラウザの進化を完全に否定した(WebUSBとか実装しないと明言した) 建て前はセキュリティーだけど、真実はPWAがネイティブアプリと同等の事が出来るとApple税が取れなくなるからだろうね
751 名前:デフォルトの名無しさん mailto:sage [2020/12/19(土) 18:56:13.80 ID:dPku7W9W.net] 税なら税で素直に払えばいい それでいい製品が使えるならいいことだ NHKのようなものだな
752 名前:デフォルトの名無しさん mailto:sage [2020/12/19(土) 19:15:06.66 ID:BJ7NL7s9.net] Appleが採用しない事で足並みが揃わなくなって、Web全体に影響するという……
753 名前:デフォルトの名無しさん mailto:sage [2020/12/19(土) 19:43:44.12 ID:GiU9Z0Di.net] 🍎に足並みを揃えない連中がよくない
754 名前:デフォルトの名無しさん [2020/12/19(土) 21:17:41.04 ID:qtDJ4FDM.net] SharedArrayBufferの代替手段って無いの? 結局これは解決する問題なの?
755 名前:デフォルトの名無しさん mailto:sage [2020/12/19(土) 22:01:28.77 ID:oadZnMoo.net] WebUSBに関してはFireFoxも実装する予定はないので 足並みを揃えてないのはChrome
756 名前:デフォルトの名無しさん [2020/12/19(土) 22:06:18.93 ID:yZxXMpJa.net] 目の前に機器があってスマホからコントロールしたい要求は一般的だと思うけど、USBの番号を個人で取れなくなったので、ブラウザに実装する意味は薄れたかもしれないですね。
757 名前:デフォルトの名無しさん mailto:sage [2020/12/19(土) 22:29:23.32 ID:lChJAmlD.net] ここだけはappleを応援するわ 消費者としてブラウザにどんどん変な機能つけるんじゃねぇ
758 名前:デフォルトの名無しさん [2020/12/19(土) 22:33:23.73 ID:yZxXMpJa.net] IoT的な意味合いで必要とする人たちが居るんですよ。 自分は見ないから動画機能を付けるなとか、聞かないから音機能を付けるなっていうのと同じでは?
759 名前:デフォルトの名無しさん mailto:sage [2020/12/19(土) 22:44:29.90 ID:8bUfeulY.net] USB APIをサーブしてajaxでlocalhostと通信でいいじゃん わざわざブラウザがサポートすることじゃない
760 名前:デフォルトの名無しさん mailto:sage [2020/12/19(土) 22:47:08.81 ID:8bUfeulY.net] まあ百歩譲って乗せるとしても拡張でいいよな 標準化しようとするのはでしゃばりすぎ
761 名前:デフォルトの名無しさん mailto:sage [2020/12/19(土) 23:00:43.45 ID:YoyJ/iet.net] ブラウザ
762 名前:がんばって欲しい React + TS 最高 swift + storyboard とかいう糞オブ糞のそびえ立つ糞まみれは2度と触りたくない [] [ここ壊れてます]
763 名前:デフォルトの名無しさん mailto:sage [2020/12/19(土) 23:55:21.82 ID:Z1BeWWR+.net] PWAの定義が今一漠然としてるから、今後はその辺りが進化していくと思われる で、PWAでない場合はJavaScriptの動作は思いっきり制限されるだろうね ま、それで良いと思う
764 名前:デフォルトの名無しさん mailto:sage [2020/12/20(日) 00:28:55.07 ID:qaHDEdvT.net] > わざわざブラウザがサポートすることじゃない ほんとこれ なぜわざわざブラウザでなんでもやろうとするのか IoTなんだから普通にツールとかアプリとかドライバ書けよと
765 名前:デフォルトの名無しさん mailto:sage [2020/12/20(日) 00:29:51.25 ID:L33Timbq.net] 結局ああいうのって「すげええブラウザでこんなことできた!」 いいたいだけちゃうんか、みたいなのがマジ多い
766 名前:デフォルトの名無しさん mailto:sage [2020/12/20(日) 03:36:56.04 ID:BKQi3Qp0.net] ブラウザが高機能化しすぎてブラウザさえ動作すりゃいい感じになってきてる 最終的にOS=ブラウザまで進化しかねない
767 名前:デフォルトの名無しさん mailto:sage [2020/12/20(日) 04:53:54.98 ID:gM7i2qLz.net] モバイル用OSがそんなかんじ アプリを全てサンドボックスで隔離して出来ることを制限 じっくり時間をかけて出来ることを解放してきた
768 名前:蟻人間 mailto:age [2020/12/21(月) 18:34:44.48 ID:Zh4p3jGs.net] Web Workerの話が出たから貼っとこう https://katahiromz.github.io/xword.js/
769 名前:デフォルトの名無しさん mailto:sage [2020/12/21(月) 18:45:09.04 ID:cr+QDiZ1.net] ゴミサイトの宣伝すんなカス
770 名前:蟻人間 mailto:age [2020/12/21(月) 18:49:49.16 ID:Zh4p3jGs.net] これPromiseとWeb Workerのマルチスレッドでパズルを生成してる。組み合わせ無限大。しかもInternet Explorerでも動作する。まあ、素人にはひと目では分からんだろうな。
771 名前:デフォルトの名無しさん mailto:sage [2020/12/21(月) 19:13:00.25 ID:cr+QDiZ1.net] ゴミサイトの宣伝すんなカス
772 名前:デフォルトの名無しさん mailto:sage [2020/12/21(月) 19:15:36.88 ID:L7srYJg2.net] webworkerってjoinみたいなメソッドある?
773 名前:蟻人間 mailto:age [2020/12/21(月) 19:15:42.32 ID:Zh4p3jGs.net] 悔しいのお、悔しいのお
774 名前:蟻人間 mailto:age [2020/12/21(月) 19:17:04.35 ID:Zh4p3jGs.net] >>743 Promise.allとかPromise.anyがあるぜ。
775 名前:デフォルトの名無しさん mailto:sage [2020/12/21(月) 19:25:34.90 ID:ApmhBnYc.net] 「蟻人間」でNGぶっこむだけだろうに…
776 名前:蟻人間 mailto:age [2020/12/21(月) 19:26:17.16 ID:Zh4p3jGs.net] Promise.anyとWorkerを使った例が >>739 にある。ご参考に。
777 名前:デフォルトの名無しさん mailto:sage [2020/12/21(月) 20:32:28.70 ID:oIaO1Bbh.net] 最近のCPUってコア数バラバラでかつ非対称なコア載ってるから、6個くらいWorker立ち上げて平等に処理投げるんじゃなくて、20個くらいのWorker立ち上げて非対称でいいから適当に処理投げてあとはOSに良きに計らってもらうとかの方がベターなのかな?
778 名前:デフォルトの名無しさん mailto:sage [2020/12/21(月) 20:34:43.73 ID:ApmhBnYc.net] navigator.hardwareConcurrency でコア数取れるぞ
779 名前:蟻人間 mailto:age [2020/12/21(月) 20:44:19.66 ID:Zh4p3jGs.net] >>749 アリがと。修正した。
780 名前:デフォルトの名無しさん mailto:sage [2020/12/21(月) 20:51:02.61 ID:oIaO1Bbh.net] >>749 なるほど。そういうのがあるのか。 じゃああとは非対称コアへの対応になるけど、これは細かくスライスして逐次投入で良いか
781 名前:デフォルトの名無しさん mailto:sage [2020/12/21(月) 20:54:25.24 ID:+ci58h/H.net] >>748 そうです 素人が考える半端なスケジューリングはアンチパターンです
782 名前:デフォルトの名無しさん mailto:sage [2020/12/21(月) 22:43:20.76 ID:Z91q9rOU.net] >>750 お前に向けて書いたんじゃない。 許可無くレスするな糞コテ
783 名前:蟻人間 mailto:age [2020/12/22(火) 00:55:34.36 ID:7oePNPbq.net] >>753 わかりました、ご主人様
784 名前:デフォルトの名無しさん mailto:sage [2020/12/26(土) 09:41:16.66 ID:3y5CuLti.net] export interface TypeA { paramters: { [k: string]: { // body } }; }
785 名前: こんな型があるとき、上記bodyの部分の型を取り出すことってできますかね? const f = (k: string, o: ???): TypeA => { return { parameters: { [k]: o } }; }; こんなことがしたい。 [] [ここ壊れてます]
786 名前:デフォルトの名無しさん mailto:sage [2020/12/26(土) 10:04:33.59 ID:kvlSFYEN.net] ヨーわからんがこうかね bitどっとly /3aJV7Hw ts playground だが短縮URL NGワードになってるからすまんな
787 名前:デフォルトの名無しさん mailto:sage [2020/12/26(土) 11:06:25.41 ID:3y5CuLti.net] そこの type Hage の定義に "extreme" を書かずに済ませたい。 この例だと {extreme:string} という型になる部分が変更されたとしても type Hage の記述を変えずに済むよう TypeA の定義から取り出す 方法がないかと。
788 名前:デフォルトの名無しさん mailto:sage [2020/12/26(土) 11:21:04.03 ID:3y5CuLti.net] ありがとう、わかった。 ["extreme"] を削れば目的の型になりますね。 ["paramters"] を使えばいいことに気付かなかった。
789 名前:デフォルトの名無しさん mailto:sage [2020/12/26(土) 12:19:31.06 ID:kvlSFYEN.net] | | また髪の話してる | 彡⌒ミ \ (´・ω・,彡⌒ミ (| |(´・ω・`):::: 感じ悪いよね (Y /:(| |):::::: し \:(Y /:: \し´
790 名前:デフォルトの名無しさん mailto:sage [2020/12/27(日) 19:16:51.24 ID:xvZc4lDU.net] もう一つ教えてください。 typeTypeB = { tag: 'a'; /* a のボディ */ } | { tag: 'b'; /* b のボディ */ }; こんな Tagged union type があるとき、 tag === 'a' の時の型(下記)を 取り出すことはできるでしょうか。 type x = { tag: 'a'; /* a のボディ */ }
791 名前:デフォルトの名無しさん mailto:sage [2020/12/27(日) 19:33:05.66 ID:xvZc4lDU.net] TypeB & { tag: 'a' } でいけた。ありがとう。
792 名前:デフォルトの名無しさん mailto:sage [2020/12/27(日) 19:36:45.35 ID:MtHOITLb.net] 型に欲情する変態さんは piotrwitek/utility-types でも npm 愛するといいぞ
793 名前:デフォルトの名無しさん mailto:sage [2020/12/27(日) 19:42:50.77 ID:xvZc4lDU.net] またまた教えてください。 type X = A | B | C | undefined; この X から undefined を除いた型 (A | B | C) を求めるにはどうしたらいいでしょうか。
794 名前:デフォルトの名無しさん mailto:sage [2020/12/27(日) 19:45:55.95 ID:MtHOITLb.net] >>763 この変態欲しがりめが https://github.com/piotrwitek/utility-types#nonnullablea
795 名前:デフォルトの名無しさん mailto:sage [2020/12/27(日) 19:49:30.25 ID:86OXbM3T.net] 標準にExcludeあるじゃん
796 名前:デフォルトの名無しさん mailto:sage [2020/12/27(日) 19:49:45.20 ID:xvZc4lDU.net] ありがとう!
797 名前:デフォルトの名無しさん mailto:sage [2020/12/28(月) 00:46:42.66 ID:0DUA8XV/.net] >>766 https://github.com/millsp/ts-toolbelt
798 名前:デフォルトの名無しさん mailto:sage [2020/12/28(月) 21:27:29.35 ID:wzipnhb8.net] 何に使うんじゃ… 漏れの限られた経験では、 x: (A | B | C | undefined) が渡ってきたら、 if (x is A) { ... } else if (x is B) { ... } else if (x is C) { ... } else if (x == undefined) { ... } else { (エラー) } ぐらいしかやることが無いキモス