Fork me on GitHub

2022-06-28のJS: ECMAScript 2022、TypeScript 4.8 Beta、CodeMirror 6

Edit on GitHub 編集履歴を見る

JSer.info #598 - ECMAScript 2022が、2022-06のEcma International GA(総会)で承認され、正式にリリースされました。

ES2022では、クラスにPublic/Privateクラスフィールド、Top-Level await、StringとArrayにat()、Error Causeなどが追加されています。追加された機能については、次の記事で解説されています。

また、同じくJavaScriptの入門書であるjsprimerもES2022に対応しています。


TypeScript 4.8 Betaがリリースされました。

unknownなどに関係するコントロールフロー分析の改善、Template String Typesでのinferの改善が行われています。
また、--build/-watch/--incrementalにおけるビルドパフォーマンスの改善、オブジェクトリテラルや配列リテラルを=====で比較した場合にエラーとなるように変更されています。
そのほかには、Binding patternの型推論の改善、--watchの安定性の改善などが含まれます。


CodeMirror 6は、@codemirror/nextとして開発されていましたが、codemirrorのStableバージョンが6へと変更されました。

これによって、npm install codemirrorで6がインストールされるようになります。
CodeMirror 6は、CodeMirrorを一から書き直しているため、CodeMirror 5以前とは互換性はありません。
CodeMirror 5からのマイグレーションガイドは次のページで公開されています。

また、CodeMirror 6はコアがパッケージとして分かれているため、codemirror/codemirrorというリポジトリはありません。今までのCodeMirror 5以前がcodemirror/codemirrorというリポジトリでしたが、今回の6がStableとなったことでcodemirror/codemirror5というリポジトリ名にリネームされました。


ヘッドライン


Ecma International approves new standards - Ecma International

www.ecma-international.org/news/ecma-international-approves-new-standards-6/

ECMAScript ReleaseNote

ECMAScript 2022、ECMAScript 2022 Internationalization APIが正式にリリースされた。


[webkit-dev] WebKit is now on GitHub

lists.webkit.org/pipermail/webkit-dev/2022-June/032312.html

webkit Github news

WebKitのリポジトリがGitHubへ移行する


Announcing React Native 0.69 · React Native

reactnative.dev/blog/2022/06/21/version-069

React Native ReleaseNote

React Native 0.69リリース。
React 18のサポート、HermesとReact Native一緒にリリースする方針へ変更など


CodeMirror 6.0

marijnhaverbeke.nl/blog/codemirror-6.html

JavaScript editor library ReleaseNote

CodeMirror 6がStableリリースされた。
codemirrorパッケージのStableが6となり、CodeMirror 5のリポジトリはLegacyとなった。


Release 2.5.0 · socketio/socket.io

github.com/socketio/socket.io/releases/tag/2.5.0

WebSocket library ReleaseNote security

Socket.IO 2.5.0リリース。
セキュリティ修正としてmaxHttpBufferSizeのデフォルト値を100MBから1MBに変更など


Find and fix problems in your JavaScript code - ESLint - Pluggable JavaScript Linter

eslint.org/

ESLint news

ESLintのウェブサイトがリニューアルされた


Release Version 14.0.0 · open-source-labs/reactime

github.com/open-source-labs/reactime/releases/tag/v14.0.0

React library ReleaseNote debug

State管理のタイムトラベルデバッグツールのReactime v14.0.0リリース。
React Routerのステートをサポートなど


Release v2.0.0 · foliojs/fontkit

github.com/foliojs/fontkit/releases/tag/v2.0.0

fonts JavaScript library ReleaseNote browser

fontkit v2.0.0リリース。
Node.js特有の機能に対する依存を削除し、ブラウザでも利用できるよう変更。
Bufferの代わりにUint8Array/TextEncoder/TextDecoderを利用するなど


Release v14.0.0 · angular-eslint/angular-eslint

github.com/angular-eslint/angular-eslint/releases/tag/v14.0.0

Angular ESLint ReleaseNote

Angular ESLint v14.0.0リリース。
Angular 14のサポート、Node.js 12のサポート終了、インラインテンプレートをLintする際のVirtual filenameの変更など


Announcing TypeScript 4.8 Beta - TypeScript

devblogs.microsoft.com/typescript/announcing-typescript-4-8-beta/

TypeScript ReleaseNote

TypeScript 4.8 Betaリリース。
unknown{} | null | undefinedと同様になり関連するコントロールフロー分析の改善、Template String Typesでのinferの改善。
--build/-watch/--incrementalにおけるビルドパフォーマンスの改善、オブジェクトリテラルや配列リテラルを=====で比較した場合にエラーとなるように。
Binding patternの型推論の改善、--watchの安定性の改善など


アーティクル


When You Should Prefer Map Over Object In JavaScript

www.zhenghao.io/posts/object-vs-map

JavaScript article

MapとObjectの使い分けについての記事。
Objectを使うときとObjectの問題、Mapの使い方とMapのベンチマーク。


Sensemaking: Angular without SSR is faster than Next.js with SSR. I have the data.

alexkrupp.typepad.com/sensemaking/2022/06/angular-without-ssr-is-faster-than-nextjs-with-ssr-i-have-the-data.html

Angular React performance article opinion

Angular(SSRあり/なし)とNext.jsのショーケースに掲載されているサイトのパフォーマンス計測をして比較した記事。
両方フレームワークのパフォーマンススコアの平均と中央値は大体同じ傾向となったという話


サイト、サービス、ドキュメント


astoilkov/main-thread-scheduling: Fast and consistently responsive apps using a single function call

github.com/astoilkov/main-thread-scheduling

JavaScript library

Main Threadでの処理をUIの表示や操作をブロックせずに行うためのスケジューリングライブラリ。
Scheduling APIを意識したAPIとなっている。
requestIdleCallback()postMessage()などを使いキューを管理する。
また、navigator.scheduling.isInputPending()を使いユーザー入力をブロックしないようにタスクを実行できる。


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


timocov/dts-bundle-generator: Tool to generate a single bundle of dts

github.com/timocov/dts-bundle-generator

TypeScript Tools

TypeScriptの型定義をbundleするツール


書籍関係


JavaScript Primer 4.0.0: ECMAScript 2022に対応したJS本 | Web Scratch

efcl.info/2022/06/19/jsprimer-4/

JavaScript ECMAScript book ReleaseNote

JavaScript Primer 4.0.0リリース。
ES2022の対応とSandpackを使ったエディタが組み込まれた。


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