ラベル TypeScript の投稿を表示しています。 すべての投稿を表示
ラベル TypeScript の投稿を表示しています。 すべての投稿を表示

2023年12月3日日曜日

TypeScriptでジョブキュー

 多分使い古されたネタですが、なんとなく思いついた&作ってみたくなったので気にせずに投下します。

「一度に実行するジョブの数は最大でN個、それ以上はキューイングしておき、実行中のジョブが終了したら順次実行」というアレです。

2023年7月23日日曜日

value-schema v4.0.0が出ました

 去年の12月に「そろそろv4が出るよ」と予告して早7ヶ月。先日ようやくリリースしたので報告です。

・・・と思ったらDeno版が最新になってない。あとで直しておきます。

機能的には去年の記事から変わっていませんが、テストケースを増やして最新のNode.js / Deno / Bunでも動作することを確認しました。

手前味噌ながら、まあまあ便利なライブラリだと思っているのでよろしければ使ってみてください。

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

2022年12月18日日曜日

TechFeed Expert Night #11に登壇します

 TechFeedという開発者向けのキュレーションサービスがあります。隔週でTechFeed Experts Nightというイベントをやっているのですが、なんと来年1月に開催予定のイベント#11に声がかかりました

TechFeedには「公認エキスパート」というものがあるんですが、公認でもエキスパートでもないワイをどっから見つけたんだ。。。

テーマとかはまだ非公開だと思うのであまり詳しいことは話せないのですがラベルでちょっとネタバレしてます。登壇者同士で話し合うアフタートークというのもあるので、公認エキスパートに囲まれて恥をかかないようにまあなんとかがんばります。

イベントが公開されたらもうちょっと詳しいことを書きます。

2022年12月11日日曜日

そろそろvalue-schema v4が出るよ

 注)まだ出てません。

入力値検証ライブラリーのvalue-schemaについて、そろそろv4の正式版が出そうなので予告です。

現時点の最新版はv4のRC2です。RC1については5月の記事をごらんください。以下ではRC1以降の変更点を解説します。

2022年5月29日日曜日

value-schema v4.0.0-rc.1をリリースしました

 前回の報告(v3.1.0)からしばらく時間が経ってしまいましたが、入力値バリデーターvalue-schemaがメジャーバージョンアップしました。といっても便利機能が追加されたというわけではなく、一身上の都合でバージョンを上げざるを得なかったというのが正解です。

不具合修正等があるわけではないので、今までv3を使っていた方はそのまま使い続けても問題ありません。

2022年2月6日日曜日

JavaScriptで非同期処理のawaitつけ忘れを防ぐ

 JavaScriptでバックエンド開発していると非同期処理を使うことが多いですよね。

そこで問題になるのがasync関数に対するawaitのつけ忘れ。まだasync/awaitが使えなくてPromiseオブジェクトに対してthen()catch()をしていた頃ならすぐ気づいたんですが、単に関数呼び出しにawaitをつけるだけというのは便利な反面忘れやすいです。よくやらかします。

JavaScriptは実行するまでPromiseオブジェクトかどうかわからないからESLintじゃ検出できないよなぁ。TypeScript ESLintならできるんかなぁと思いながらルールを探したらありました。

2021年11月14日日曜日

TypeScriptのenumをいまさら語る

TypeScriptのenumについて。

あちこちで「enumはアカンからunion型を使え」と言われていますが、その理由や「本当にenumはいいところないの?」「unionはenumの移行先として適切なの?」などをいろいろ検証してみましょう。

最後に「こういう仕様ならいいのに」という妄想もあります。

2021年10月24日日曜日

typescript-eslintでインデントのルールがおかしいときの対応

現在TypeScriptで作っているウェブアプリケーションがあるんですが、先日ESLintのバージョンを7系から8系に、typescript-eslintのバージョンを4系から5系に上げたところ、今まで出なかったエラーが出てきました。

問題を指摘されたのは以下のようなコード片です。

class Foo {
	@decorator
	bar: number;
}

一見問題なさそうに見えます。実際文法的には問題ありませんし今までは特に指摘されてきませんでした(ここだけ見るとbarが初期化されていませんが、あくまでコード片です。実際にはコンストラクターで値を割り当てています)。

何がアカンのかというと、barのインデントだそうです。こうしろと。

class Foo {
	@decorator
		bar: number; // ←こうしないとエラー
}

えっ。こんなコーディングスタイル見たことない

新しいルールが追加されたのかと思って、これを無効にするオプションを探してみたんですが特に見つからず。

2021年10月10日日曜日

最近のTypeScriptのES Modules対応事情

コロナの影響で中止となった幻のTSConf 2020で、TypeScriptとES Modulesについて登壇する予定でした。

最近のTypeScriptは、モジュール関連で新たな仕様が出てきたようなので簡単にまとめておきます。前職同僚でNode.js Core Collaboratorのshisamaおよびdeno-ja Slackコミュニティーからの情報を勝手に集約しました。みなさんありがとうございます。

2021年10月3日日曜日

value-schema v3.1.0をリリースしました

Node.jsとDeno界隈に一大センセーションを巻き起こした(※個人の感想です)データ検証ライブラリーvalue-schemaの新バージョンがリリースされました。

今回の目玉はenumeration()です。名前の通り、TypeScript(Deno含む)でenum等の列挙型を使うときに真価を発揮します。

2021年7月11日日曜日

TypeScriptで、中身が同じ別の型を区別する

タイトルを見て「ああ、アレのことね」と思った方。はい、アレです。というかURLでネタバレしてます。

アレを知っている人にとっては別に目新しいネタではないと思いますが、先日教えてもらったのでメモとして残しておきます。

2021年5月9日日曜日

Denoifyというものを教えてもらった

Denoifyという、Node.js向けに書いたソースコードをDenoで動くように変換してくれるツールがあります。もちろんあらゆるコードを100%変換できるわけではありませんが。

このツールの存在を1年ほど前に教えてもらいました。

本 人 か ら 。

2020年12月13日日曜日

value-schema v3.0.0を公開しました

 数ヶ月リリース候補版で引っ張りまくったパラメーター検証ライブラリー、value-schemaの正式版がようやくリリースされました。

詳しい使い方はQiitaに書いていますが、これまでと基本的に変わっていません。

Deno用のインポートパスは https://deno.land/x/value_schema@v3.0.0/mod.ts です。Qiitaの記事も意外とLGTMがついているので、Node.js / Denoを使っているみなさんはぜひ使ってみてください。

2020年7月19日日曜日

TypeScriptのimport文で拡張子を解決するツールをつくってみた

つくったのは2ヶ月くらい前ですが。

何をやりたかったかというと、「Node.js用に書いたコードをDenoでも動かしたい」というのが動機です。

以前さくらのナレッジに寄稿したとおり、Denoではモジュールの指定に拡張子が必須になったので、従来のNode.jsのコード(特にTypeScriptで書いている場合)はそのままでは動きません。

そこで、拡張子を解決するツールを作ってやればDenoでも動かせるんじゃね?と思いました。

2020年6月28日日曜日

value-schema v3.0.0-rc.9を公開しました

また中途半端なリリース報告です。

やっと型パズルを解きました。

2020年6月21日日曜日

Deno入門

・・・という記事をさくらのナレッジに寄稿しました。
正確には「Node.jsの後悔から生まれた新しい実行環境・Deno入門 〜簡単なアプリケーション作成ハンズオン付き〜」です。

まだDeno歴は浅いのであまり偉そうなことは書けないんですが、Denoが生まれた背景とかNode.jsとの違いといった内容を前半で書きました。

後半ではインストールから簡単なウェブアプリケーションまで解説。ソースコードはGitHubに置いていますnpm installのような下準備もpackage.jsonのようなメタファイルも何もなく、ソースファイルをコピペするだけでそのまま動かせるのが手軽ですね。

まだライブラリーが少ないので、便利なものを作れば一気に有名になれるチャンスかも知れません。例えばExpressっぽいフレームワークとか。もうあるかもしれませんが。

はてブの登録者数前回以上にありました。おおむね好評でよかったです。
次回は何の記事を書こうかな。

2020年6月14日日曜日

value-schema v3.0.0-rc.8を公開しました

前回同様、中途半端なバージョンでのリリース報告です。 

TypeScriptから使う場合にちょっとだけ破壊的な変更があるので告知します。