音声書き起こし 1. オープニング 00:00 @spring_raining 00:03 こんにちは、UITの玉田です。今回も、UIT INSIDEを始めたいと思います。
UIT INSIDEは、ユーザーインターフェースと、テクノロジーを愛する開発者のためのポッドキャストです。最新のウェブ標準の動向や、開発、フレームワークの編成、 uyrxに関することまで、毎週フロントエンドの情報を発信していくことを目的としています。今回は
@spring_raining 00:28 ですね、予算を今回お呼びしましてえ、先日発表されました。タイプスクリプト、4.7データの話を じっくりしていこうかなと思いますそれではよろしくお願いします
@uhyo_ 00:41 はい、よろしくお願いしますまで、おなじみうしょで、
@spring_raining 00:45 はい、よろしくお願いします。
2. TypeScript 4.7 Beta 00:53 @spring_raining 00:53 早速話をしていこうと思います。で、タイプスクリプトなんですけれども、 ちょうど4月の8日にですね。アナウンシングルタイプ、スクリプト、4.7データというブログが出ました。
で、まあそこに書いてあることを今回はまあ順に追っていこうかなと思うんですけれども、ただ、ちょっと量が
@spring_raining 01:20 1回の収録でやるには多すぎるかなっていう感じがしていまして。で、まあ、ここの2人でこう。
なんか興味のありそうなところをピックアップしてっていう形でししていこうかなと思っています。じゃあ、私からピックアップしてもいいですかね。
@uhyo_ 01:39 はい、なんでも聞いてください、
@spring_raining 01:41 お頼もしいな、でも聞きますでは、じゃあもう 1番上から行きます。エクマスクリプト、モジュール、サポートノードjsから。はい
@uhyo_ 01:55 はい、これは結構待ち望まれていたやつですね、人々から
@spring_raining 02:00 そうですね、ついにです
@uhyo_ 02:02 はい、1回タイプスですと、4.5とかその辺で1回ベータに入った気がするんですけど、ちょっとまだ不安定だということで 外されてしまって、それが今度こそ2度目の挑戦という感じですね。
@spring_raining 02:15 なるほど、なるほど、そうですよね、ついに来たっていうことは、もう安心して買っていきたい
@uhyo_ 02:21 そうですね、今度は、ちゃんとリリースされてくれるんじゃないかな、という風に期待しています。これの内容について、私からちょっとご説明した方がいいですかね。
@spring_raining 02:30 はい、お願いします。
@uhyo_ 02:32 はい、これ、タイプつける人のesmeつける人、モジュールサポートってよく言われるんですけど、も ま実はノードj向けのイマス、クリフトモジュールサポートだっていうことは、 1つ抑えておいていただきたいポイントかなという風に思います。はいというのも、
@uhyo_ 02:49 ノードジェースの方で、エクマスクリフトモジュールのサポートが入ったのって、確かノードジェース12とかその辺りなんですよね。
いわゆるベイパックとかで、インポテクスポートが結構昔から使われていたのに比べると、まノードジェースの方で、ネイティブのサポートの方が 入ったのが、結構最近だという風にそういう事情がありました。で、ノードジェイスのエクマスクリフトサポートで何が特徴かというと、
@uhyo_ 03:14 パッケージジェイソンのタイプにモジュールと書いたら、えっとまいます。モジュールのセマンティックスになって、 従来のリクワイヤーが消えて、インポートエクスポートになるみたいな、そういった感じでしたね。
あと、もう1つ大きい特徴が、パッケージとパッケージェイソンにエクスポーツっていうのを書くことができるじゃないですか、
@uhyo_ 03:36 あれによって、パッケージ名、スラッシュでやった後 のカスタマイゼーションが従来、ファイル名。そのままだったら、もっと自由にカスタマジできるっていうのは、 ノードジェースのエクマスクリート、モジュールサポートの結構大きな特徴だという風になってます。なので、
@uhyo_ 03:54 今回タイプスクリフト4.7ベータで入ったこのノェイス向けエクマスクリフトモジュールサポートっていうのは、ざっくり言うと、その点をタイプスリフト側でも解釈できるようになりましたよ。っていうことなんですよね、
@spring_raining 04:06 ああ、なるほど、なるほど、
@uhyo_ 04:07 だから、そのタイプ作る人は、コンパイル時にパッケージロト、ジェイソンのタイプならエクスポーツナリオ見に行ったりとか、そういったことをしてくれるっていうのが これですね。なので、このアナウンスイベントにも書いてますけど。
モジュールっていうコンパイラーオプションに、ノード12とか、ノードネクストって書くことによって、これが発動するんですね。
@uhyo_ 04:31 そうなんで、ノード12かというと、まさにノード12でいます。ヒモジュールのネイティブサポートが、の側に入ったからっていうことになります。
@spring_raining 04:40 これってあれですよね、あの、bs2019とかああいう感じで、そのバージョンを指定するの。12と ノードネクストがあってっていう感じで、今のところはあれですよね。ノード12とノードネクスト一緒だけど、まあ、 将来的にそのネクストって方は、その新しい方に追従していく。
@uhyo_ 05:01 そうそうですね、まさにその通りです。個人的には、モジュールっていうところにノードって書くのがちょっと驚きですね。
そう、これまでイエス2015とか、イエスネクストが書いてたとこなのに、イエストノート並列なのみたいな不思議さ。まあ、確かに
@uhyo_ 05:18 なんか今、モジュールリゾリューションっていうコンパイルオークションもあったじゃないですか。クラシックはいとか、ノードとか書く。みんなノードにしてるやつ。
はい、あっちにしなかったら、なんでかなっていうのはちょっと不思議です。なんでなのか、ちゃんと調べてないんですけど、
@spring_raining 05:33 そうですよね、これは、確かにののモジリソリューションもありますよね。
@uhyo_ 05:39 うん、うん、まあ、厳密にはリドリューション以外の部分もノードタイルが入ってるからとか、そんな感じかもしれないですね。
@spring_raining 05:46 ああ、なるほど、そうかもしれない
@uhyo_ 05:49 そう。ctsとmtsっていう拡張しが新たに導入されるという件も。ああ、結構知られてますね。
これ、なんでこんなものが入るかというと、ノージ側でcjsとmjsがあるので、それに合わせてっていうことで、これもノードジ対応の一環ですね。
@spring_raining 06:05 なんか、いきなりctsとか出てきても、タイプスクリプトのファイルなんかって、ちょっと一瞬ドキッとしますよね。ま、でも、これはmgsとcjsを クスポートするためには、ファイル名で
@uhyo_ 06:17 うん、うん、
@spring_raining 06:18 指定してあげるっていうことになりますよ。
@uhyo_ 06:21 そうですね、ちなみに、なんか、ノードジェースのイマスクリフト対応って、 タイプスクリスのに、インポート文にドジって書かないといけないって話あったじゃないですか。はい、あれ。実は今回の タイプスリストのノージースリクのスクションモジュール対応でも、実は解消されるわけではないんで、そこはちょっと注意してくださいという
@uhyo_ 06:43 ま、ちょっとだけ残念なお知らせがあります。ただ、例えば、mtsとか新しいかっこいい拡張子を使ったとしても、 mtsから他のmtsをインポートするときにか、各証書はmjsなんですよね、これ
@spring_raining 06:56 あ、そうなんですか、あ、あれですか。クスポートした先のジェースで解釈させるって考えると、
@uhyo_ 07:05 そうなんですよ、そこは変わらないっていう原則がそのままあるはずなので、mgって書かないといけなかったはずで、
@spring_raining 07:13 ああ、なるほど、そこは注意しないといけないですね。
@uhyo_ 07:17 そうなんですよ、このドットジースって書かないといけないの。結構辛いって言われるところではあるんですけど、 割と本質的なツラスなので、今回どうにかなったわけではないっていうことで。
@spring_raining 07:33 まあ、そうですね。個人的には、タイプモジュールをそのパッケージェーソンに指定してあげるっていうのがまあできる。それができるなら、それが1番 いい気はしますね。
@uhyo_ 07:44 そうですね、確かに、確かに、
@spring_raining 07:46 あと、エクスポーツにもリクワイアとかインポートみたいなのを指定してあげる中にタイプっていうのが入って、これも 正しく解釈されるんです。これは
@uhyo_ 07:58 そうですね、タイプっていうのは、要するに、片定義をどこで見ろっていうことですね。だから、従来パッケージオジェイソンのトップレベルにタイプって書いたら、それがそのパッケージの片義ファイルだったじゃないですか、
@spring_raining 08:11 はい、
@uhyo_ 08:12 あれがまあトップレベルだけじゃなくて、個々のサブインポートっていうんですかね。あれに対しても、個別に言い方、定義は指定できるようになったっていうことで、 これ非常に嬉しさが高いですね。うん、
@spring_raining 08:25 そうですね、
@uhyo_ 08:26 そうよくライブバイ作る時に、トップレベルじゃなくて、スなんとかからインポートできるみたいな機能を作るじゃないですか。はい、あれは、従来は なんかそのスラっていうファイル名と同じところにドtsファイルを置くし、以外の方法がなくて。はいはいはい、 それがそうですよね。今回このタイプ、スク、人向け、マスィート、モジュール対応が入ることによって、それもいい感じにできるという。ちゃんと整った場所にdtsファイルを置くことができるとか。
@spring_raining 08:54 はい、確かにこれが今までなかったせいで、そのタイプスクリプトで、デフォルトエクスポート以外のものを読み込もうと した時にできないっていうのは。だって、結局ァイル名と同じ場所を指定し、せざるを得ないっていう。
@uhyo_ 09:09 そうなんですよ、
@spring_raining 09:10 うん、それは完全に解消されるんですね、それは嬉しい
@uhyo_ 09:15 そうですね。エクスポスタイルは、個人的にかなり嬉しい点で、
@spring_raining 09:19 今までだと大体そのリストとか、そういう指定が入っていたのとかは、ついになくて。そうですね、
@uhyo_ 09:27 そうなんですよ、あの辺がなくなるのは結構嬉しいです。
@spring_raining 09:31 で、あと、なんか今見てさらっと書いてあるんですけど、そのタイプのコンディションは、シュット、オルウィズ、カムファーストイン エクスポーツって書いてあるあるので、そのなんていうんですかね。例えば、インポートとか、リクアイヤーみたいな指定が ある。中野、最初に置かないといけないんですかね。そう
@uhyo_ 09:52 みたいですね、
@spring_raining 09:54 注意ですね、
@uhyo_ 09:56 うん、これなんなんでしょうね。普通になかったら、インポートとか、リクワイヤーを見に行ってくれるようになってるから、それを書きするために、タイプが必要とか、そういう感じなんですかね、 ちゃんと把握してないですうん、
@spring_raining 10:11 これはなんでなんですかね、まあ、でもまあその通りにしましょうという感じ、
@uhyo_ 10:16 そうするのが良さそう。
@spring_raining 10:18 あと、インポーツっていうフィールドもパッケージェーソンにはあって、それでも対応って書いてますね。あんまり使うこと。
今までなかったんですけど、うん、これも対応されてるんです。
@uhyo_ 10:29 そうですね、インポートは確かに私もあんまり使ったことはないですね。
参加者 3 10:34 うん、
@uhyo_ 10:35 なんか何でしたっけ。シャープみたいに書いたら、それが自分のパッケージの中ではまあうまいこと解決されるという。
正直あんまり使ったことないです。これは
@spring_raining 10:46 そうですね、これもま一応対応されているようなタイプスクリープとも解釈するようになったと。
@uhyo_ 10:52 はい、じゃあ、とりあえずこれから先ノードジェースのプロジェクトを作るときは、 まあ、この設定いるときは大体安泰っていうことになると思うので、とてもいいですね。
@spring_raining 11:05 そうですね、これはもうあの積極的に使っていきたいところだと思います。
@uhyo_ 11:10 はい、
3. Instantiation Expression 11:14 @spring_raining 11:14 じゃあ次のなんか
@uhyo_ 11:16 ビックそうですね、あ、じゃあ、新しい構文入ったので、それ行きますか。はい、このインスタンシエーション、エクスプレッションって書いてあるやつですね。
@spring_raining 11:26 あ、はいはいはい、スタンシーション、エクスピッションですね。
@uhyo_ 11:32 はい、これ何かというと、なんかジェネリック関数ってあるじゃないですか、 はい、宣言されるときに、各か固tかかこと時みたいな感じで片引数があるやつですね。
@spring_raining 11:46 はいはい、
@uhyo_ 11:47 それを呼び出す時のま片引き数を明示する時の構文って関数名各かこか引き数 かかつ、今年丸かこ引き数みはいたいない感じだったと思うんですけど、その丸か引き数の部分を省略した構文が新たに 導入されるっていうことですね。はい、つまりかそう関数名か固かかっこかかかこと
@uhyo_ 12:15 終わり
参加者 3 12:16 ていううん、
@uhyo_ 12:20 要するにこれ何かっていうと、そのジレ関数の型変数の部分ですね。そこだけを先に埋めちゃった方の、 まあ、関数を生成するという、うん、そういう構文になっていますね。
このインスタンシエーションって書いてあって、これの日本語訳は何かってことは結構難しいんですけど、
@uhyo_ 12:45 個人的には舞台化とかそういう感じが近いかなって思って。うん、
@spring_raining 12:50 そうですね、あの、ここ私もなんかインスタンスって解釈したら、ちょっとなんか勘違いを生みそうだなっていう気は
@uhyo_ 13:00 そうですね。なんか、クラスのインスタンスとか、あれとはちょっと話が違うんですよね。
@spring_raining 13:08 なんで、まあ具体化とか実体化とか。
@uhyo_ 13:11 うん、うん、
@spring_raining 13:12 なんかそういう感じのところはありますね。これ、あの、今までなかったのがちょっと不思議であったっていうぐらいで、 その今までだと、そのジェニックスの引数は、普通のその関数の引数とセットじゃないとダメみたいな。そうですね、それは
参加者 3 13:31 うん、
@spring_raining 13:32 嬉しい。
@uhyo_ 13:33 このインスタンシエーションっていう語は、なんかもしかして、なんか論理学の述語論類とか、そっちの方から取ったのかなっていう気もちょびっとだけしています。あ、
@spring_raining 13:43 そっか、なんかもしかしたら、すでに日本語のちゃんとした名前があるかもしれない
@uhyo_ 13:49 そうですね。なんか、ハスケルとかで、片引数のあるやつを、なんかフォアボール片引数みたいな書き方ができるやつあるじゃないですか、 はいはい、あれが述語論理のフォアオールと対応していて、なんかそのフォアボールを述語論理で剥がす時にインスタンシエーションっていうみたいなので、 それと対応していると考えると、かなり納得できるところかなって思います。うん、
@spring_raining 14:13 普通にインスタンシエーションでしますか。名前
@uhyo_ 14:19 そうですね、まあえて日本語にすんなら、さっきも言った通り、具体化、実体化そのあたりかなって思いました。なんか、一応公文としては 関数名か格好って古文ですけど、ジャマスケットにトランスパイルしたら、かか、この部分が消えて、普通に関数名だけになる。
なんか、ただ普通に変数だけになって、特に何もしないみたいな、そういうものになりますね。
@spring_raining 14:44 そうですよね、これは、あのjavavaスクリフト的に見たら、意味のない、ただのあの変数のあのになになるっていう
@uhyo_ 14:52 そうです。ジャース人的には、何もランタイムのことはしなくて、あくまで肩が変わるという、うん、そういう構文ですね
@spring_raining 15:00 までもこれはあれですよね。そのタイプスクリフト的には非常に重要ん。すごい家族性という意味でも、めちゃくちゃ 大事ですね。
@uhyo_ 15:11 そうですね、結構反応的な関数をなんか具体的なものとして、片注釈上げたい時とか結構あるんですけど、そういう時、これまで結構 片注射と書くの面倒だったのが、これは片水路に任せることができて、一発ではしっとうん。インタースチュエーションできるので、そこは地味に パップは思い浮かばないけど、実務の中で行動を書いていたら、意外とあ、これ使うと便利なってる画面が画面が見つかりそうな、そういう構文ですね。
@spring_raining 15:41 そのブログの中のそのエラーマップの例とかもめっちゃまさしくっていう感じがします。こういう感じの使い方は、
@uhyo_ 15:49 はいあ、マップとか確かにそういう風にこう使いそうですね、確かに確かにこれはなかなかいいですね、
@spring_raining 15:57 はい、ああ、レイも行きますねあ、なるほど、なるほど、
@uhyo_ 16:01 はいはい、
@spring_raining 16:03 なんか色々例が出てきそうですじゃあ、もう1つ行きますか。
4. 型推論の強化 16:08 @uhyo_ 16:11 はい
@spring_raining 16:12 と、まあでも結構他のやつはなんて言うんすかね。例えば、 コンピューテットプファティによるコントロールフロー分析ですね。これは、地味に便利なあの、 何をしているかっていうと、あれです。そのオブジェクトとかの
@spring_raining 16:31 プロパティを参照した時にのあの、なんていうんですかね。結果をそのコントロールフローの型分析に 使えるようになったっていう変更ですね。
@uhyo_ 16:44 はいはいあ、コンピューティータプロパティーってあれですね。なんか、プロパティー名を識別とか、ベタ書きじゃなくて、あのブラケットの中にかける。あ、 なるほど、あれのことをコンピューテトプロパチって呼んでるそうなんですね、なんで、例えばこの公式の例にあるやつだと、なんかシンボルをきめに使ってるじゃないですか。
はい、シンボルは文字列じゃないから、必ずヒメとして使うとき、こういう風にコンピューテト、プロパティの構文を使う必要があったんですけど、ま、そういう場合でも、ちゃんと。まあ、普通に
@uhyo_ 17:15 プロパティミを書いた時と、同等のサポートを受けられるようになったっていうことですね。
@spring_raining 17:22 そうですね、今までだと、その参照した結果を一旦変数にサインしてってなっていう感じだったと思うんですけど、それはなくなるっていう
@uhyo_ 17:34 普通になんかプロパティアクセスして、絞り込んだのに、あれ、衣風の中で絞り込めてないみたいなことは結構起きて、そのために変数に入れたりしたんですけど、うん、 これからもしかしたらそういうのはいらないパターンがあるかもっていうことですね。場合によっては、
@spring_raining 17:48 これはあのすごい便利便利しがすぐ使えそうです。
@uhyo_ 17:54 そうですね、
@spring_raining 17:56 あとは、その下のやつも結構これは何をしているかっていうと、 インプローブド、ファンクション、インファレンスインオブジェクト、アンドペソッツっていうことでと、オブジェクトや、あれの中の冠水に対する 硬水路の強化っていうことですね。
@uhyo_ 18:13 はいはい
@spring_raining 18:15 で、ちょっと口で説明するのが ちょっと難しいんですけれども、その例えば、そのある関数にジェネリックスが設定されていて、 で、その方の関数の引数の中で、そのジェネリックを使ってるっていうケースで、そのオブジェクトとか、
@spring_raining 18:34 あれとかの関数だと、色素を与えたタイミングで、ジェリクスを解決していたってのが、それが遅延されて、その オブジェクトやあの中の関数が実行された時に方が評価されるっていう説明が難しい
@uhyo_ 18:52 そうですね。なんか、まあ、関数のジェネリックスの引数って、基本的に 引数から推論されるじゃないですか。しろ集約された時は、
@spring_raining 19:04 はい、それはなんか
@uhyo_ 19:05 指数として与えられたオブジェクトの中の関数みたいなものが、新たにま、その推論にの時に考慮されるようになったんですね。きっと
@uhyo_ 19:17 そうこの推論って、なんか結構複雑なことをすると、まタイプス人の限界を超えがちなところだったんですよね。
よくあるよと、タイプ関数とかあるじゃないですか、
@spring_raining 19:31 はい、
@uhyo_ 19:32 なんか、じゅこう関数を順番に適用するみたいな。あれも結構複雑な方になりがちで、その片水路も 与えられた関数の型を元に指数を推論するみたいなこと。やりがちで、これを確か昔はできなくて、今はできるんですけど、 そういう風にだんだんこう型変数の推論に対する需要っていうのがこう複雑化してきて、タイプスクリフトは頑張って、それに
@uhyo_ 20:00 追随してるっていう流れの一環なのかなって思います。これは
@spring_raining 20:05 そうですね、これをもう使うほどこう方に対する需要というか、ちゃん、そのちゃんとした方を使いたいっていう、うん、うん、欲求が高まっているなっていう ところははじます。
@uhyo_ 20:18 そうですね、まあ、結構なんかライブラリー作者とかは、これでかなり助けられること多いんじゃないかな、という風に思いますね。
@spring_raining 20:29 確かに、
@spring_raining 20:32 その方に関する関連で、もう1つ取り上げると、 型パラメーターの変異ですね。あの、バリアンスって呼ばれるはいもので、 導入されたっていうこれはあれですね。その特に、他の方のついてる言語の使っている方は、注目するかなっていう
@spring_raining 20:52 ところですね。これ、あのま変異っていうあの機能がその方がついてる言語では一部ではありまして。
で、タイプスクリプトだと、アウトトインというそのキーワードが用意されてま。それをこうジェネリックスに つけることで、いわゆる強変とか、はんぺんとかっていうのが指定できるようになったっていう変更がありました。
@uhyo_ 21:19 はい、 このインとかアウトって多分コインとかでも使われてるかなと思います。自分の主流範囲だと、はい、これは結構待ち望んでいた人が多いんじゃないかな、という風に思いますね。
ただ、基本的にはアノテーションなんですね。これ、わざわざこのブローケージでも、オプショナルバリアンスアノテーションつって、2回もオプショナルであることを強調していて、
@spring_raining 21:43 はいはい
@uhyo_ 21:43 っていうのもまこのインとかアウトっていう情報は、基本的にま、構造的部分型だから、中中身を見ても、タイプスクリフトってのは頑張って 推論してくれていたんですけど、ま、それを名刺的に書くことができるようになったっていうことで、
@uhyo_ 22:00 まあ、簡単に言っちゃうと、関数の引数の方を明示するかどうか、みたいなものに近いですね。これは 書いてもいいけど、書かなくてもいいという点で、ああ、なるほど、結構とすると、この片引き数はアウトのつもりなのに、 ああ、片手書いたら、なんか縁になっちゃったみたいなことをあらかじめアウトって書いてることによって、カエラーで教えてくれるという。
@uhyo_ 22:28 あ、そういった使い道が1つ考えられるかなと思いま。
@spring_raining 22:32 そうですね、なんか、あの最初一瞬見た時、その機能としては、すごいおっきな変更だなっていう思ったし、一方で、そのタイプスクリフトって、元々そういうの推論でやってくれるんじゃないかっていうところで、ちょっと 疑問だったんですけれども、確かにそのおっしゃる通り、あれですね。これは、アノテーションっていうのが単語の方ですかね。書いててでま なくても大丈夫だけれども、その家読性とか。あと、速度の向上っていうところでメリットがありますよ。って書いていて、
@spring_raining 23:07 なるほど、なっていう
@uhyo_ 23:08 そうです。そうですね、速度の向上っていうのは、要するにこれがあると型推論じゃなくて、型検査になるんですよね。
タイプする人が自ら推論してくれるんじゃなくて、既に人間が書いたものがちゃんと守られているかどうか、チェックするっていう
@uhyo_ 23:24 頑張って推論してもらうよりはせに書いたものに従って検査してもらう方が、まあ楽そうだなっていうイメージはなんとなく掴めるんじゃないかなと思います。
うん、それが、この片引き数のバリアンスっていうところにもやってきたという風に理解していただけばいいかな。
あとは、この推論っていうのが、どうしてもうまくいかない場合もあったみたいなんですね。特にこう無限ループしてる時とかに、
@spring_raining 23:49 ああ、はいはい、
@uhyo_ 23:51 なんか無限ループしてるとタイプする人って、型推論諦めちゃうことがあって、このバリアンスの推論に関しても、確かそれは同じだったはずです。
そういう場合は、インとかアウトとか書くことによって、まあそのわざわざ無限ループを見に行かなくても、 ま推論できるようになるので、その場が大丈夫になるっていう。これは、結構実質的な嬉しさがあるところですね。
@spring_raining 24:15 あ、はいはい、あ、じゃあまそういうそのなんて言うんすかね。ただの、あのテーションっていうんじゃなくて、ほんとにうんうん。実際に必要になるケースもある
@uhyo_ 24:25 そうなんですよ、ちょっと、私の昔作ったライブでロコンっていうのはあったんですけど、 実はロコンがかなり直接的に、これにおん。これの恩恵を受けるところで、 あれもかなりなんか無限ループがバリバリある型定義なので、このバリアンスをタイプつける人がうまく推論してくれてなかったんですよ。これまで
@uhyo_ 24:45 だから、なんか実際には使われないけど、内部的に存在してるプロパティーみたいなのを用意して、 それを使って、タイプスクリストにバリアンスを認識してもらってたんですけど、 うんタイプする人4.7があると、そういう。まあ、ワーカーランドは必要なくて、アウトとか書くだけでま意図通りの挙動になるということで、
@uhyo_ 25:07 ロコにはちょっと。この機能使って、ヒントがアウトを早速書いてみたいですね。
@spring_raining 25:13 ああ、そうなんですね、じゃあ、そういうところでも使える私はあの個人的には あれですね。明治的につけつけることで、こう使ってみて、その方に対するメージ的にこう。あの、テーションをつけることで、 具体的にしていきたいっていう。
@uhyo_ 25:33 はいはいはい、そうですね、方のま、ドキュメンテーションとしての側面を見るのであれば、ドキュメンテーションとして書ける情報が増えるっていうのは いいところですね。
@spring_raining 25:44 というそうですね、今もそういう意味で使っていきたい。
@uhyo_ 25:48 なるほど、なるほどしました。あと、個人的には結構片付け頑張ってるライブラリとかにも、積極的に活用していただきたいですね。
というのも、ライバの片定義ってると、すごい何重にも。なんかエリアがかかってて、結局中身が何なのか全然わかんないこととかあるんですけど、 うん、そういう時もとりあえずインとかアウトとか書いてあれば、その情報は出てくるはずなので、そういう意味で、ちょっと
@uhyo_ 26:16 ま。ライブの方を読みに行く時にも助けになるかなと思って。ま
@spring_raining 26:21 あ、確かにそのドキュメントとしてのあれですね、方定義ファイルを見るっていうのはあります。
@uhyo_ 26:31 そうなんですよ、なので、これは皆さんどんどん使っていっていただきたいですね。
@spring_raining 26:37 まあ、あれですね、使う側もそうですし、こうか、定義を提供する側に積極的に使ってほしいとこですね。あ、まさにそうです。
じゃあ、まあ他にもまだあるんですけれども、こう時間の都合上見て、 ぶん文章で見てもらいたいです。結構、他のところも結構良さそうなところがあります。モジュール、サフィックスとかもなんか
@spring_raining 27:02 結構あの、どういう文脈でつけられたのだろうみたいな気になったりとかしますけれども、
@uhyo_ 27:09 そうですね。まあ、実はモデルサフェスについては、私、別に記事書いてあるんで、よければ、そちらをご参照宣伝をね。はい、 そう、ちょっとこれ
@spring_raining 27:20 あれですね、小ノートに
@uhyo_ 27:21 はい、お願いします。あ、あと、ちょっと時間の都合があると申し訳ないですけど、1つだけ是非もう1つ紹介しておきたいという
5. importsのグルーピングソート 27:24 @spring_raining 27:29 どうどうぞ。はいったもの
@uhyo_ 27:30 あって、これなんかちょこんと書かれてるけど、実はあんまり知らない人多いんじゃないかっていうのがあって。
グループ、サーウェアオーガナイズインポーズって書いてあるやつですね。
@spring_raining 27:41 はい、
@uhyo_ 27:42 これなんかvsコードでファイル保存される時に、自動的にこうインポートソートしたり、つか てないやつを消してくれる機能あるじゃないですか。はい、自分かなり便利に使っていて、 新しいプロジェクトを作るときには、まず、とりあえずその設定有効にするんですけど、これが実は強化されたよってのがこの話なんですよ。
@spring_raining 28:02 うん、
@uhyo_ 28:02 実はこれ結構まあ嬉しい人が多いんじゃないかなと思って、そこで紹介さしてもらいたくて。
はい、このインポートのソートって、vsコール経由でアクティベートしますけど、実はタイプスクリフトの方で実装されてるもので。だから、 このタイプスクリフト4.7データのアナウンスのブログに現れてるんですけど、
@uhyo_ 28:24 ざっくり言うと、陰法当分たちをこう空業で分けるグループ分けすることによって、そのグループの中で相当が行われるようになるよっていうのは、 この変更なんです。ああ、これまでは全て1色端にソとされていたんですけど、 なんか、空行でグループを分けることによって、その中でだけソートされるようになるという。はい、これがあることによって、インポートの順番が大事なんだよとか、そういったユースケースにもまある程度対応できるようになる、
@uhyo_ 28:54 というのが1つ大きいですね。
参加者 3 28:57 うん
@uhyo_ 28:58 あ、ポリフェを1番最初にインポートするとか、そういうやつ、
@spring_raining 29:01 はいはい、そうですよね、
@uhyo_ 29:03 そう、これまでそういうことしている時は、こうポリフィルが変なとこに来ちゃって、壊れちゃうから。このオートインポートっていうのは、なかなか使えなかったんですけど、そういう時も、 プリフィルの下に1位を開けておけば、その下のグループがポリフェルより上に来ることがないんで、この 自動インポートソートの恩恵を受けることができます。
@spring_raining 29:24 このインポートのソートって、あんまり個人的には、タイプスクリプトの機能っていう 感覚はあんまりなかったんですけど、うん、うん、うんまでも実はあるし、しかも今回それから強化されたっていう空業で区切るってのは頭いいですね。
@uhyo_ 29:39 そうですね、実はこれ最初誰かのサジションがvsコードのレポストルに立てられて、 タイプスクリッシュの機能だからってことで、タイプスクリートのレポートにシが移管された後、最初は空業で区切るっていうサジソンじゃなかったんですよ。
なんか、コメントで次の行は想像しないでみたいな。そういうアノテーションつけられるみたいな。最初のサジションだったんですけど、
@uhyo_ 30:03 それはちょっと色々辛いよね。みたいになって、止まっていたところに。まあ、タイプスクリストチームのライアンさんが、 え、じゃあ、空業で区切れとかどうすか。みたいなこと言って、あ、いいじゃんってなって、進んで、それが実装されたっていう流れなんですよ。これ だからなんか実装してほしいけど、なんかうまく進んでない機能があるときは、なんか、ダイヤをぽんって投げると、意外と進むっていうのは、タイプしてる人はよくあることなので、
@uhyo_ 30:31 その一例にでもなってますね。これは
@spring_raining 30:34 なるほど、そんな裏話が
@uhyo_ 30:38 ですよ。なので、なんか頭のいい人は結構なんかこうしたらいけるんじゃない。っていうサジションをどんどん投げてもらえると、 案外pad反映されてるします。体育つける人には、
@uhyo_ 30:51 はい、個人的には、このインポートをソートしてくれるやつ、かなり愛用してたので、とても嬉しいですね。
@spring_raining 30:57 私、今まであのesリントで解決してたんですけど、これはははい便利そうなんで、タイプスクリフト、 ほぼほぼタイプ、スクフトで書くことしかないんで。
@uhyo_ 31:08 そうですよ、気にしちゃっていいですね、そうなんですよ、ちょっと個人的にはいちいちイエスリントまで導入するほどでもないな、みたいなプロジェクトとかで、 とても便利に使ってます。タイプスクリフトあればいいや、みたいな。
@spring_raining 31:21 はいはい、いや、これは今知ってすごい嬉しかったです、ありがとうございます。
@uhyo_ 31:30 はい、これ地味にちっちゃく書かれてますけど、かなり嬉しい人多いんじゃないかと思います。
6. 本が出ます! 31:37 @spring_raining 31:38 はい、じゃあ、結構もう
@spring_raining 31:43 セクションでめっちゃもうだいぶ時間を使ってしまったんですけれども、 実はですね。もう1つ私話をしたいなと思ってまして。ほうはい、すごいわざとらしく 導入が始まったわけですけれども、今回、書算が本を1冊書かれたということで、その本についての話を
@spring_raining 32:08 今回ぜひ聞いてみたいなと思っております。あ、
@uhyo_ 32:12 そうなんですよ、振っていただいてありがとうございます。実はですねえ、本の名前が プロを目指す人のためのタイプスクリプト入門って言いまして、これが4月の22日発売予定になっておりま。
@spring_raining 32:28 はい、すごいしかもこれ単調ですよ。
@uhyo_ 32:32 そうなんですよ、1人で400ページ書きました、
@spring_raining 32:34 ご400ページあるんですか。
@uhyo_ 32:39 そうなんですよ、うん。今日収録している今日、ちょうど実物の写真が届いたの見ましたけど、結構暑いですね。さすがに400ページもあると
@spring_raining 32:49 おおすごいこれはあれですかね。もう、プロを目指す人のためのっていうところなんで、めっちゃもうコードのところまで書かれているっていう期待してもいいですか。
@uhyo_ 33:00 そうですね、そうではあるんですけど、でも、一方で入門ってついてますので、ちょっといわゆる型パズルとかやされるような、あの辺まではちょっといけないかなっていう感じですね。
個人的に、タイプスリフトを使いこなしてるラインとして、 なんかユニオン型とか、リテラル型、あの辺がちゃんと使えることが1つのLINEかな、という風に思ってますので、そのレベルまではちゃんと導きます。
@spring_raining 33:24 おお、すごい最初からそこまで導きるのは、だれもめちゃくちゃ
@uhyo_ 33:30 いいです。そうなんですよ、もう、javaスクリフトタイプする人、経験なしの状態からでも、そこまで行けます。
@spring_raining 33:36 それはすごいぜひ皆さん買ってください。
@uhyo_ 33:40 はい、もう結構こだわりの1冊なので、もう是非皆さんお手元に取っていただきたいですね。
結構ただ構文とか説明してるだけじゃなくて、まあ、厳密さとか、ちゃんと理屈から説明するとか、その辺はかなりこだわって書いておりますので、 もうぜひぜひというところです。
@spring_raining 34:01 私も届いたら、早速読んでみようと思います、
@uhyo_ 34:04 ありがとうございますそう、実はこの本の宣伝のブログとかもちょっと書いたんですけど、も。
はいこう。それこそ、会社なんかにも置いてもらうのにもちょうどいいかな、という風に思ってます。
結構なんか、教科書的な買い方になってる部分もありますので、会社とかでですね。タイプスクリフト教育をする時にも、
@uhyo_ 34:26 教科書としてとてもいいんじゃないかな、なんて思っています。
@spring_raining 34:31 いや、もうあれですね、バイブルになりそうな予感がひしと感じております。
@uhyo_ 34:37 いや、もうそこを目指してますね、タイプする人といえば、これでさになってほしい、
@spring_raining 34:45 素晴らしいじゃあ、せっかくなので、あれですかね。まあ、この機会にこう執筆自体の話とかもちょっと聞いてみようかなと思うん
@uhyo_ 34:54 ですけれども、はい、
@spring_raining 34:56 これはちなみにいつから書き始めたんですかね。
@uhyo_ 35:01 2019年末から書き始めたので、丸2年以上ですね。これを
@spring_raining 35:10 すごい。なんかそう、私もだいぶ昔から書いてるっていう話を聞いていて、 いつから帰ってるんだろうって気にはなってたんですけど、
@uhyo_ 35:21 そうなんですよ。twitterアカウントとかで、ずっと前からもうタイプスクリットも執筆中ってなってるけど、 いつまで経っても出なくて、なんだこいつさかみたいな状況になっていたんですけど、2年越しになんとか出すことができたんです。
@spring_raining 35:35 いや、すごい2年経ってるってなると、なんか途中でバージョンとかも上がったりしますよね。
@uhyo_ 35:42 そうなんですよ、書き始めた時、まだタイプスリート3点いくつとか
@spring_raining 35:48 だったそうですね。うん、
@uhyo_ 36:00 会社も決めた時はまだでしたけど、ちゃんと後からもう告げ足して、秀のたれのように2年間足して、ちゃんと最新の内容にしておりますので、
@spring_raining 36:10 いいす。最初から書き始めたらって感じですかね。となると、
@uhyo_ 36:15 そうなんですよ
@spring_raining 36:17 までも4.6ならもうほんとに最新と言えますね。
@uhyo_ 36:22 そうなんですよ、今、皆さん、4.7の内容をお届けしている身としては、ちょっと心苦しいところもあるんで、
@uhyo_ 36:34 そうなんだよ、だから、そこはですね。4.7の最新版出たら、なんか 4.6から今までの差分みたいな記事をちょっと出そ出して免定していこうかなとはちょっと考えてます。アフターフォローとしてですね、
@spring_raining 36:47 ここのポットキャスト的にもあれですね。こう、アップデート化していくたびに、ちょっと取り上げていきたい気持ちはありますね。
それを聞いてそうですね、あの、ちゃんとその本の内容もいいですけど、ちゃんとアップデートできるような 環境になると嬉しい
@uhyo_ 37:09 そうですね。ま、もちろん本の内容自体は まあ、タイプスのバージョンが上がったら、更新されちゃう部分はもちろん、ありつつこう。基本的な考え方とか、その辺は衰えないようになってますので、そこもまあご安心って感じですね。
@spring_raining 37:25 はい、そうですね、いや、早く読みたい。はい、400ページ
@uhyo_ 37:32 結構大変かもしれないですけど、
@spring_raining 37:34 でま、これを聞いてる方は、まあ、それなりにた。もしかしたら、タイプスクルートできる方が多いかもしれないですけど、までもこう振り返れる こう多分なんて言うんすかね。体系的にまなタイプスピプトな学びました。っていう機会、あんまり実はなないかもしれないんで、そういうところがいいです。
@uhyo_ 37:55 そうですね、かなり体型的な内容になるように頑張っていま。
@spring_raining 38:00 はいといういやまあのかい会社のポットキャスではあるんですけれども、めちゃくちゃ本として、 私は期待しております。ぜひ、皆さん送ってください、
@uhyo_ 38:14 ありがとうございますぜひぜひ
7. クロージング 38:18 @spring_raining 38:21 今回はタイプスクリット4.7と、あとは、その書かれた身長について、聞いていきました。
ラインのフロントエンド組織UITでは、このような技術的なキャッチアップを日々行っております。
UIT INSIDE以外にも、毎週の社内勉強会で、フロントエンドの情報交換を行なっています。
@spring_raining 38:42 今後もUITサイズを通して、このような情報を外部に発信していけたらと思います。最後に、現在LINE株式会社では、 新卒、中途採用ともに大募集しています。このポットキャストを聞いて、第に興味を持たれましたら、 小納と1番下にある求人ページから、ぜひアクセスしてください。それではうさんありがとうございました、
@uhyo_ 39:04 ありがとうございました。