ターニングポイントさん!?

10bace LOG

カテゴリー: 技術 Page 1 of 11

【TypeScript】awaitした結果のtypeを取ってくるやつ

◆結論

declare global {
  type AwaitType<T> =
    T extends Promise<infer U> ? U :
    T extends (...args: Array<any>) => Promise<infer V> ? V :
    T;
}

◆お気持ち

ReturnTypeっていうビルトインのtypeを使えば、「関数の戻り値の型」を引っ張ってこれますよね。

const hoge = (arg: number) => 'ちばけんま!';
type t = ReturnType<typeof hoge>;
// t のtypeは、hogeの戻り値の型であるstringになる。

それと同じノリで、関数の戻り値がPromiseであったらそれawaitした結果の型が欲しすぎない?喉から胃液が出るほど欲しい。

Go言語の立ち位置が分からなかった立場から

前に書いて「これ世に出したら殺される」と思って破棄した記事なんだが、ある説を読んで、「あぁー…」って納得したようなしてないような気持ちになったから公開しておく。

ある説っていうのは

非知的なプログラマのためにデザインされている (Designed for non-intelligent programmers)

っていう。

なるほどねと。つまり、Goは「事足りる」言語なのかもなぁみたいな感じぃみたいなぁ。事足りさえすれば美しいかどうかなんて関係ない。言語設計が優れているかどうかなんて誰も気にしてない。例えばウンコに向かって「何故美しくないんだ」とキレていたようなもんだ俺は。狂人かよ。

そういうこと。全ては俺の勘違い。

以下、捨てようと思った見当外れの駄文。読まないでください。

12時間悩んだ末にDocker + VS Code なWeb開発環境が出来たよ^~

んほ^~

※Windowsを対象にしてるけど、デスクトップ環境でコンテナ動けばどうでもいい。

知っ得情報は後のほうに書いてあるから、実施の段を読み飛ばしてもいい。

◆要確認事項:2020/9/6

手を出すのが、ちょっとはやいかも。あんま悩んでもしょうがねぇから、つみですと思ったら諦めて時が経つのを待てばいいと思う。

どっから話せばいいのかわからんが。すべては時間が解決するものであったりする。

▼Windowのバージョン

Windows Homeはまだ無理かも。なんやかんや試したけど動かんかった。Docker Desktopが動かなくて謎。いやでも18462以上であればHomeでイケるって情報ある。謎。

Docker DesktopをWSL2とつなぐと起動できないやつ

◆結論

  1. なんだかんだ試す。
  2. https://github.com/microsoft/WSL/issues/4177#issuecomment-597736482

◆あったこと

「Use the WSL2 based engine」をしたときにDocker Desktopが起動失敗するのが困った。

System.InvalidOperationException: Failed to deploy distro docker-desktop

というのと、そもそもWSL2が謎に動かなくなった問題が同時発生していた。

WSLを普通に起こしたときは以下のようなエラー。

実行しようとした操作は、参照したオブジェクトの種類ではサポートされていません。

この文言をダブルコーテで囲って検索したらこのページを発見し、英語のエラー文言をゲット。

ITエンジニアが技術の勉強すること

「勉強」というテーマで記事をしたためようと思ったんですけども、情報技術に身を捧ぐエンジニアの勉強はなにやら他の勉強と趣が違っているように思えたので切り出す。

◆アハ体験のため

興味の気持ちが解消されたとき、あるいは、互いに繋がっていなかった情報と情報とがリンクしたとき、報酬系という臓器から汁がチョロチョロと染み出してくる。それは透明で、うまあじを豊富に含有する。それを脱脂綿にふくませてちゅうちゅうと吸うとなんか幸せな気持ちになる。

そういう体験の為に学習するのがとても楽しいですよね。

技術の勉強していると、知らない言葉がたくさん出てくる。ホントにバグってんじゃねぇの、レベルデザインおかしいんじゃねぇの、ってくらい沢山の知らない言葉が出てくる。

形而上シャウトとしてのちばけんま!

メタ構文変数(メタこうぶんへんすう、metasyntactic variable)はプログラミング言語の記述で使われる識別子の一種。サンプルプログラムなどで意味のない名前が必要な場合に利用される、「意味のない名前」であることが広く知られた識別子のことである。

メタ構文変数 – wikipedia

ちばけんまとは、長谷川亮太の住所の略称(〒270-2203 千葉県松戸市六高台2-78-3)、ないし当該住所に立つ1999年3月10日に新築された民家、またはそこへ訪問することである。

ちばけんま – 唐澤貴洋Wiki

◆メタ構文

プログラミングに於いて、「何でも良いもの」「任意」を表現するときに使用される。意味を持たないプレースホルダー。

Fortniteの消えたはなし

◆結論

脱衣ブロック崩し作れ。

◆発端

フォートナイトっていうゲームがありまして。それがAppleとGoogleの課金を迂回してキレられたという話。

独占企業Appleに対するゲームデベロッパーの反乱。『フォートナイト』削除事件まとめ魚拓

結果的に両アプリストアからフォートナイトが(2020/8現在)消えた。ビジネスで言えばEpicがどう考えても悪いんだけど、これはまぁどっちが悪いとかでねくて…いやもうどっちも悪いんだけども。そしてどっちの言い分もわかる。

.NET Coreのソースコードを拝みたい

◆結論

.NET Core Source Browser

◆遺棄殺

RustでReadLineを書くことについて思いを馳せていて。

System.IO.StreamReader.ReadLine() ってどうやって「一行」を読み込んでんのと思った。だって \r と \n と \r\n が入り乱れておるわけだから。まぁどうせゴリゴリのゴリゴリのゴリゴリのゴリに書いてるんだろうけども、それにしたってどのようにゴリゴリしているのかが気になった。

byteゴリゴリ、stringゴリゴリ、charゴリゴリ。果たしてそこにはどんなゴリラが生息しているんだろうか。気になるゴリよ。

「僕のフロントエンド技術に対するスタンス」に対する伺か

僕のフロントエンド技術に対するスタンス | note

文句言いたいわけじゃなくて、補足というか。多分、そんなに深くないところの人をターゲットに書いただろうからしょうがないとも思う。だから深いところをサワサワしてみる。

ってのと、「TypeScript対応に時間がかかりすぎているため、スタート地点に立つことが厳しい」ってのを読んで、Vueで開発してないんやなと思ったから書いとく。というかそれを書きたかった。あとはおまけ。

◆Vueの補足

メリットについて語っておく。というかデメリットらしいデメリットが見当たらないのが強みなんだけども。

まず、エコシステムの結託具合。Reactは企業(Facebook)が主体であるというのにメリット/デメリットがあると思わんかね。

ゆるくISO 8601のTime zoneをとってくるRegex

メモ。所詮メモ。

TypeScriptでなんとなく使う方法も書いておく。

◆結論

Z|[+-](0\d|1[012])(:?[012345]\d)?

▼注意

  1. フルのハイフン時刻表記に対してこの正規表現を通すと死ぬ。つまり、「2020-01-01」の「-01」が取れてくるわけだから、注意ですよね。
  2. 「-12:00」でも「-00:00」でもとれる。それが表記的に正しいかどうかはよくわからん。
  3. 「+09」でも「+0900」でも「Z」でも取れちゃうよ。ISO 8601がそういう仕様だからしゃあないね。

「Z」が取れちゃう問題点として、日付を表現してない文字列を処理したときに、その文字列に「Z」が混入してたらTime Zoneだと勘違いして引っ掛けちゃう可能性あるよね。

参考:ISO 8601 | Wikipedia

Page 1 of 11

Powered by WordPress & Theme by Anders Norén