[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 08/09 11:00 / Filesize : 267 KB / Number-of Response : 1050
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

TypeScript part3



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/

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 {
  (エラー)
 }
ぐらいしかやることが無いキモス

799 名前:デフォルトの名無しさん mailto:sage [2020/12/28(月) 22:38:22.06 ID:f0IE/THC.net]
少し簡略化するけど

type A = { [k: string]: number };
type B = { [k: string]: string };
type C = { [k: string]: boolean };

ここで type X[string] で number | string | boolean を取り出したかったけど
undefined が混じっているとうまくいかなかった。



800 名前:デフォルトの名無しさん mailto:sage [2021/01/03(日) 19:57:38.08 ID:p2o4CIkL.net]
typescriptのd.tsファイルについて網羅的に解説されているドキュメントはありますでしょうか
公式は最低限の事しか書かれていなくて。

例えば、test1.d.tsは以下の通りに書いてあって
export type A1 = boolean;
type A2 = boolean;

test2.d.tsは以下の通りに書いてある場合、
type B1 = boolean;
type B2 = boolean;

A2 B2はどっちも「type XX = boolean;」という書き方をしているのに、別のtsファイルで
const x1 : A2 = t






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<267KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef