2023年1月29日日曜日

TypeScriptで「任意のプロパティーを持てるが特定のプロパティーだけ型が違う」オブジェクトの型宣言をする方法

タイトル意味不明かもしれません。ちょっとうまい表現が見つかりませんでした。要するにこういうオブジェクトを作りたいということです。

  • プロパティーa, b, cはstring型
  • それ以外の任意のプロパティーはnumber型

コードで書くとこんな感じ。

// a, b, cはstring型
foo.a = "a";
foo.b = "b";
foo.c = "c";

// それ以外でも任意のプロパティーを使えるが、これらは全てnumber型
foo.abc = 123;
foo.xyz = 456;
foo.bar = 789;

TypeScriptを使うならanyとか使わずにできるだけ厳密に型定義をつけたいのでやってみました。

多分周回遅れのネタだと思いますが、ちょっと苦労したので同じように苦労している他の方の参考になれば。。。

2023年1月22日日曜日

1/18のTechFeed Experts Night#11に登壇しました

 先週告知した通り、1/18にイベント登壇してきました。

TechFeed Experts Night#11 〜JavaScript/TypeScript最前線

スライドはこちら

8分間で51ページという超絶ボリュームですが、33ページ目以降はおまけスライドで発表時には触れていません。また、PDF化する都合でアニメーションを複数枚のページに分けたものもかなりあるので見た目ほど中身は濃くないです。

以前もちょっと書きましたが、他の登壇者のみなさんが公認エキスパートばかりの中で1人だけ公認でもエキスパートでもない奴がポツンといる状態で、ある意味プレッシャーでした。

実はこれ、3年前のTSConf JPで発表しようとしていた内容に最近のDenoとかBunの事情を加えた内容です。昔話が多いのはそのせいです

2023年1月15日日曜日

1/18のTechFeed Experts Night#11に登壇します

先月告知したTechFeed Experts Night#11についての続報でございます。もうイベントページが公開されたので詳細を紹介します。

イベントページはこちら、テーマは「JavaScript/TypeScript最前線」です。

話す内容は「パッケージ開発者の苦悩 -JavaScriptランタイム群雄割拠-」で、その名の通りパッケージ開発者向けの内容です。ただし、最前線というテーマに反して昔話が多めなので、心してお聞きください。

2023年1月8日日曜日

Bunをバージョンを指定してインストールする方法

 以前の記事でちょっとだけ触れた新進気鋭のJavaScriptランタイムのBunについて。

トップページにワンライナーでインストールする方法が書いてあります。

curl -fsSL https://bun.sh/install | bash

これだと問答無用で最新バージョンがインストールされます。まあ殆どの場合は最新バージョンで問題ないんですが、ライブラリーの動作検証時などでは特定のバージョンを指定したい場合があります。

でも検索しても特定のバージョンをインストールする方法がヒットせず、公式サイトにも記載がないように見えたので、ちょっと調べてみました。どっかに書いてあって見落としてただけならごめんなさい。

2023年1月1日日曜日

GitHub Actionsのcomposite actionでNPMをキャッシュする方法

えー、あけましておめでとうございます。

これは2023年最初の記事なんですが、実は2022年最後の記事のつもりでした。なぜこうなったかというと、単に2022年の日曜がもう1回あると思ってただけです。

というわけで、新年一発目はタイトルどおりGitHub ActionsのTipsです。季節一切関係ないから2022年最後だろうが2023年最初だろうがどうでもいいんですが。