多分使い古されたネタですが、なんとなく思いついた&作ってみたくなったので気にせずに投下します。
「一度に実行するジョブの数は最大でN個、それ以上はキューイングしておき、実行中のジョブが終了したら順次実行」というアレです。
多分使い古されたネタですが、なんとなく思いついた&作ってみたくなったので気にせずに投下します。
「一度に実行するジョブの数は最大でN個、それ以上はキューイングしておき、実行中のジョブが終了したら順次実行」というアレです。
去年の12月に「そろそろv4が出るよ」と予告して早7ヶ月。先日ようやくリリースしたので報告です。
・・・と思ったらDeno版が最新になってない。あとで直しておきます。
機能的には去年の記事から変わっていませんが、テストケースを増やして最新のNode.js / Deno / Bunでも動作することを確認しました。
手前味噌ながら、まあまあ便利なライブラリだと思っているのでよろしければ使ってみてください。
タイトル意味不明かもしれません。ちょっとうまい表現が見つかりませんでした。要するにこういうオブジェクトを作りたいということです。
a, b, cはstring型コードで書くとこんな感じ。
// 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とか使わずにできるだけ厳密に型定義をつけたいのでやってみました。
多分周回遅れのネタだと思いますが、ちょっと苦労したので同じように苦労している他の方の参考になれば。。。
先週告知した通り、1/18にイベント登壇してきました。
TechFeed Experts Night#11 〜JavaScript/TypeScript最前線
スライドはこちら。
8分間で51ページという超絶ボリュームですが、33ページ目以降はおまけスライドで発表時には触れていません。また、PDF化する都合でアニメーションを複数枚のページに分けたものもかなりあるので見た目ほど中身は濃くないです。
以前もちょっと書きましたが、他の登壇者のみなさんが公認エキスパートばかりの中で1人だけ公認でもエキスパートでもない奴がポツンといる状態で、ある意味プレッシャーでした。
実はこれ、3年前のTSConf JPで発表しようとしていた内容に最近のDenoとかBunの事情を加えた内容です。昔話が多いのはそのせいです。
先月告知したTechFeed Experts Night#11についての続報でございます。もうイベントページが公開されたので詳細を紹介します。
イベントページはこちら、テーマは「JavaScript/TypeScript最前線」です。
話す内容は「パッケージ開発者の苦悩 -JavaScriptランタイム群雄割拠-」で、その名の通りパッケージ開発者向けの内容です。ただし、最前線というテーマに反して昔話が多めなので、心してお聞きください。
TechFeedという開発者向けのキュレーションサービスがあります。隔週でTechFeed Experts Nightというイベントをやっているのですが、なんと来年1月に開催予定のイベント#11に声がかかりました!
TechFeedには「公認エキスパート」というものがあるんですが、公認でもエキスパートでもないワイをどっから見つけたんだ。。。
テーマとかはまだ非公開だと思うのであまり詳しいことは話せないのですがラベルでちょっとネタバレしてます。登壇者同士で話し合うアフタートークというのもあるので、公認エキスパートに囲まれて恥をかかないようにまあなんとかがんばります。
イベントが公開されたらもうちょっと詳しいことを書きます。
注)まだ出てません。
入力値検証ライブラリーのvalue-schemaについて、そろそろv4の正式版が出そうなので予告です。
現時点の最新版はv4のRC2です。RC1については5月の記事をごらんください。以下ではRC1以降の変更点を解説します。
前回の報告(v3.1.0)からしばらく時間が経ってしまいましたが、入力値バリデーターvalue-schemaがメジャーバージョンアップしました。といっても便利機能が追加されたというわけではなく、一身上の都合でバージョンを上げざるを得なかったというのが正解です。
不具合修正等があるわけではないので、今までv3を使っていた方はそのまま使い続けても問題ありません。
JavaScriptでバックエンド開発していると非同期処理を使うことが多いですよね。
そこで問題になるのがasync関数に対するawaitのつけ忘れ。まだasync/awaitが使えなくてPromiseオブジェクトに対してthen()やcatch()をしていた頃ならすぐ気づいたんですが、単に関数呼び出しにawaitをつけるだけというのは便利な反面忘れやすいです。よくやらかします。
JavaScriptは実行するまでPromiseオブジェクトかどうかわからないからESLintじゃ検出できないよなぁ。TypeScript ESLintならできるんかなぁと思いながらルールを探したらありました。
TypeScriptのenumについて。
あちこちで「enumはアカンからunion型を使え」と言われていますが、その理由や「本当にenumはいいところないの?」「unionはenumの移行先として適切なの?」などをいろいろ検証してみましょう。
最後に「こういう仕様ならいいのに」という妄想もあります。
現在TypeScriptで作っているウェブアプリケーションがあるんですが、先日ESLintのバージョンを7系から8系に、typescript-eslintのバージョンを4系から5系に上げたところ、今まで出なかったエラーが出てきました。
問題を指摘されたのは以下のようなコード片です。
class Foo {
@decorator
bar: number;
}
一見問題なさそうに見えます。実際文法的には問題ありませんし今までは特に指摘されてきませんでした(ここだけ見るとbarが初期化されていませんが、あくまでコード片です。実際にはコンストラクターで値を割り当てています)。
何がアカンのかというと、barのインデントだそうです。こうしろと。
class Foo {
@decorator
bar: number; // ←こうしないとエラー
}
えっ。こんなコーディングスタイル見たことない。
新しいルールが追加されたのかと思って、これを無効にするオプションを探してみたんですが特に見つからず。
コロナの影響で中止となった幻のTSConf 2020で、TypeScriptとES Modulesについて登壇する予定でした。
最近のTypeScriptは、モジュール関連で新たな仕様が出てきたようなので簡単にまとめておきます。前職同僚でNode.js Core Collaboratorのshisamaおよびdeno-ja Slackコミュニティーからの情報を勝手に集約しました。みなさんありがとうございます。
Node.jsとDeno界隈に一大センセーションを巻き起こした(※個人の感想です)データ検証ライブラリーvalue-schemaの新バージョンがリリースされました。
今回の目玉はenumeration()です。名前の通り、TypeScript(Deno含む)でenum等の列挙型を使うときに真価を発揮します。
タイトルを見て「ああ、アレのことね」と思った方。はい、アレです。というかURLでネタバレしてます。
アレを知っている人にとっては別に目新しいネタではないと思いますが、先日教えてもらったのでメモとして残しておきます。
Denoifyという、Node.js向けに書いたソースコードをDenoで動くように変換してくれるツールがあります。もちろんあらゆるコードを100%変換できるわけではありませんが。
このツールの存在を1年ほど前に教えてもらいました。
本 人 か ら 。
数ヶ月リリース候補版で引っ張りまくったパラメーター検証ライブラリー、value-schemaの正式版がようやくリリースされました。
詳しい使い方はQiitaに書いていますが、これまでと基本的に変わっていません。
Deno用のインポートパスは https://deno.land/x/value_schema@v3.0.0/mod.ts です。Qiitaの記事も意外とLGTMがついているので、Node.js / Denoを使っているみなさんはぜひ使ってみてください。
npm installのような下準備もpackage.jsonのようなメタファイルも何もなく、ソースファイルをコピペするだけでそのまま動かせるのが手軽ですね。