Fork me on GitHub

2023-01-18のJS: Flow v0.197.0(Local Type Inference)、Fetch APIのエラーハンドリング

Edit on GitHub 編集履歴を見る

JSer.info #627 - Flow v0.197.0がリリースされました。

Flow v0.197.0ではLocal Type Inferenceという機能がopt-inで導入されています。

Flowは、強い型推論エンジンを持っていましたが、Type-Firstなアーキテクチャへと移行しています。
そのため、依然と比べると明示的な型付けが必要となるケースは増えますが、安全性やバグが減ります。

Local Type Inferenceもこのアーキテクチャの変更の一環のようです。


Safe Data Fetching in Modern JavaScriptという記事では、Fetch APIを安全に使う場合に考慮するべきことについて書かれています。

Fetch APIでは4xx系のエラーが発生しても、結果のPromiseがRejectされるわけではありません。
この記事では、Axiosライクなエラーハンドリング、JSONをPOSTするときのハマりどころ、Fetchのラッパーについて書かれています。


JSer.info を始めてから12年が経ちました 🎉


JSer.infoをサポートするには

JSer.info Sponsors

JSer.info SponsorsGitHub SponsorsとしてJSer.infoを支援してくれている方々です。


ヘッドライン


rimraf/CHANGELOG.md at main · isaacs/rimraf

github.com/isaacs/rimraf/blob/main/CHANGELOG.md#v40

node.js library ReleaseNote

rimraf 4.0リリース。
globサポートを削除、Promiseを返すように変更、Node 14未満のサポート終了、TypeScriptでの書き直し。
またCJSとESMの両方に対応し、Windowsでのパフォーマンスの改善など


Release v0.17.0 · evanw/esbuild

github.com/evanw/esbuild/releases/tag/v0.17.0

JavaScript Tools ReleaseNote

esbuild v0.17.0リリース。
incremental buildに関する処理をcontext APIに移動。
watchserveを同時に利用できるように、またServer Send Eventを使ったLive Reloadに対応、開発サーバがHTTPSに対応など


Release v0.197.0 · facebook/flow

github.com/facebook/flow/releases/tag/v0.197.0

flowtype ReleaseNote

Flow v0.197.0リリース。
Local Type Inferenceをopt-inで利用できるように。


moon v0.22 - New pipeline, hashing, and caching, with Turborepo migration | moon

moonrepo.dev/blog/v0.22

monorepo Tools ReleaseNote

monorepo管理ツールのmoon 0.22リリース。
パイプラインの並列性を制御できるように、プロジェクトグラフのキャッシュと依存のインストールミスが減るように。
Turborepoからのマイグレーションコマンドを追加、Bunのサポートなど


Firefox 109.0, See All New Features, Updates and Fixes

www.mozilla.org/en-US/firefox/109.0/releasenotes/

Firefox ReleaseNote

Firefox 109リリース。
拡張機能がManifest V3に対応、scrolledイベントのサポートなど


アーティクル


Safe Data Fetching in Modern JavaScript

www.builder.io/blog/safe-data-fetching

JavaScript Fetch article

Fetch APIについての記事。
Fetch APIのエラーハンドリング、Axiosライクなエラーハンドリング、JSONをPOSTするときのハマりどころ、Fetchのラッパーについて


`*.d.ts` ファイルをコミットする前に知ってほしい4つのこと

zenn.dev/qnighy/articles/9a6a0041f2a1aa

TypeScript article

TypeScriptの.d.tsをソースコードとして含める必要がないケースについて。
また、含める場合にtsconfigのtypeRoottypesは使わずに、コードからimportする方法やincludesを使う方法について


ソフトウェア、ツール、ライブラリ関係


giusepperaso/structura.js: A very fast and lightweight Typescript library to create immutable states with a mutable syntax

github.com/GiuseppeRaso/structura.js

JavaScript library

ImmerライクなImmutable処理のAPIを提供するライブラリ。
FreezeをTypeScriptの型で表現することによって、オーバヘッドを減らしている。


LyraSearch/lyra: 🌌 Fast, in-memory, typo-tolerant, full-text search engine written in TypeScript.

github.com/LyraSearch/lyra

TypeScript search library

TypeScriptで書かれた全文検索エンジン


azu/eslint-cjs-to-esm: ESLint wrapper for migration from CJS to ESM.

github.com/azu/eslint-cjs-to-esm

node.js JavaScript ECMAScript CommonJS Tools ESLint

CommonJSからESMへのマイグレーションを補助するツール。
ESLintをラップしていて、CJS to ESMを扱うルールをビルトインしている。
importしてるパスへの.jsの追加やrequire/exportsなどのCJSでしか使えない機能の禁止など


tsmodule/tsmodule: TypeScript to ES Module loader and compiler.

github.com/tsmodule/tsmodule

TypeScript ECMAScript Tools

TypeScriptでESMなパッケージを開発するツールキット


shuding/react-wrap-balancer: Simple React Component That Makes Titles More Readable

github.com/shuding/react-wrap-balancer

JavaScript React CSS library english

タイトル文字列の折り返しを読みやすくするためのReactコンポーネント


azu/tsconfig-to-dual-package: Node.js dual package tool that add package.json to tsconfig's `outDir`

github.com/azu/tsconfig-to-dual-package

TypeScript library node.js

TypeScriptでCJSとESMのDual packageを作成するためのツール。
tscのビルド結果があるディレクトリに対して、CJSとESMに対応したpackage.jsonを追加することでDual packageを作成する


書籍関係


改訂3版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで:書籍案内|技術評論社

gihyo.jp/book/2023/978-4-297-13288-0

JavaScript book

2023年2月13日発売
JavaScriptの入門書


この記事へ修正リクエストをする
JSer.info Slackに参加する