JSer.info #461 - TypeScript 3.7の正式版がリリースされました。
Playgroundで更新内容を確認できるようになり、新しく増えた構文などのサンプルコードが確認できるようになっています。
構文として新しく増えているため、TypeScriptをサポートしているツールチェイン周りもアップデートが必要になります。
ECMASCript Proposal(Stage 3)のOptional ChainingとNullish Coalescingのサポートが追加されました。
Assertion Functionsでasserts <expr>
を返り値の型として書けるようになっています。
これにあわせてnever
型を返す関数の型推論の改善されています。
その他の変更として、型エラーがネストさしてる際のエラー表示の改善、@ts-nockeck
をtsファイルでサポート、--declaration
と--allowJs
を組みあせて利用できるようなっています。
また、ECMAScriptの仕様に準拠するために試験的な機能としてuseDefineForClassFields
のフラグが追加されています。
これによってクラスフィールドの出力コードがより仕様に合わせた形なり、またクラスフィールドにdeclare
modifierを利用できるようになります。
Babel 7.7.0がリリースされました。
Top-Level await
のパースをサポート、TypeScript 3.7サポートが行われています。
また、パースエラーでも結果のASTとエラーを返せるerrorRecovery
オプションの追加、babel.config.json
や.babelrc.cjs
を設定ファイルとして認識するようになっています。
その他の変更として、@babel/react
でJSX内でのSpread構文を展開せずにSpread構文のまま出力できるuseSpread
オプションの追加やメモリ消費量の改善など行われています。
npm 6.13.0のリリースに合わせて、今後のnpmのロードマップについて書かれた記事が公開されいます。
npm 6.13.0ではpackage.json
に書かれたfunding
フィールドをサポートするようになっています。
これにあわせてインストール済みのパッケージのfunding
フィールドをリストできるnpm fund
コマンドが追加されています。
また、npm install時にfunding通知と--no-fund
での通知のオプトアウトが実装されています。
これまでは、各パッケージでfunding通知が実装されていたため、これの標準化をしてユーザーがコントロールできるようにする目的です。
その他にもnpmのフォーラムはアーカイブ化しバグ関係の管理はGitHub Issuesに再び移動され、
RFCについてOpenにミーティングする場を設け、GitHub Projectでのステータスの公開などの取り組みも行われいます。
記事ではnpm v7での変更予定についても書かれています。
npm v7の変更予定としてパフォーマンスの改善、GitHubのPRからのインストールのサポート、Node 6と8のサポート終了、peerDependenciesをデフォルトでインストールするなどの変更が予定されています。
年末ぐらいにはベータリリースして試せるようになる予定とのことです。
JSer.infoをサポートするには
- 😘 知り合いにJSer.infoをおすすめする
- ❤️ GitHub Sponsorsで@azuのスポンサーになる
- 🐦 X(Twitter)で@jser_infoをフォローする
JSer.info Sponsors
JSer.info SponsorsはGitHub SponsorsとしてJSer.infoを支援してくれている方々です。
ヘッドライン
Announcing TypeScript 3.7 | TypeScript
devblogs.microsoft.com/typescript/announcing-typescript-3-7/
TypeScript 3.7リリース。
Playgroundで更新内容を確認できるようになった。
Optional Chainig、Nullish Coalescing、Assertion Functionsのサポート、エラーレポートの改善、@ts-nockeck
をtsファイルでサポートなど。
never
型のコントールフロー改善、--declaration
と--allowJs
を組みあせて利用できるように.
useDefineForClassFields
のフラグ付きでクラスフィールドにdeclare
を利用できるように、
Prettier 1.19: Long awaited Vue option, TypeScript 3.7 and new JavaScript features · Prettier
prettier.io/blog/2019/11/09/1.19.0.html
Prettier 1.19リリース。
--vue-indent-script-and-style
オプションの追加、TypeScript 3.7のサポート、ES Proposalのpartial application構文のサポートなど。
7.7.0 Released: Error recovery and TypeScript 3.7 · Babel
babeljs.io/blog/2019/11/05/7.7.0
Babel 7.7.0リリース。
Top-Level await
のサポート、TypeScript 3.7サポート。
パースエラーでも結果のASTとエラーを返せるerrorRecovery
オプションの追加、.babelrc.cjs
を設定ファイルとして認識するように、メモリ消費量の改善など
Release v6.13.0 · npm/cli
github.com/npm/cli/releases/tag/v6.13.0
npm 6.13.0リリース。
npm fund
で依存パッケージのfunding
フィールドをリスト表示できるように、npm help <command> --viewer browser
で表示するヘルプをgatsbyベースに変更など
Announcing Dart 2.6 with dart2native: Compile Dart to self-contained, native executables
medium.com/dartlang/dart2native-a76c815e6baf
Dart 2.6リリース。
dart2native
compilerでmacOSやWindows、Linux向けのネイティブコードの出力をサポート、dart:ffi
の改善など
アーティクル
Client-Side SQL Query Parsing with ANTLR | Rockset
rockset.com/blog/client-side-sql-query-parsing-with-antlr/
ANTLRを使ったSQL構文のパーサをJavaScriptで書く方法についての記事
Rethinking frontend APM - LogRocket Blog
blog.logrocket.com/rethinking-frontend-apm/
LogRocketにLogRocket MetricsというFrontend向けのパフォーマンスモニタリング機能が追加された。
APM(Application Performance Management)機能で、フロントエンドに関するいろいろなメトリクスを計測し、モニタリングやアラートを設定できる
The npm Blog — Updates to Community, Docs & more...
blog.npmjs.org/post/188841555980/updates-to-community-docs-more
npmの最近の変更と今後について。
npmのフォーラム( https://npm.community/ )はアーカイブ化しバグ関係の管理はGitHub Issuesに再び移動、npm 6.13でnpm fund
のサポートなど。
またnpm v7の変更予定としてパフォーマンスの改善、GitHubのPRからのインストール、Node 6と8のサポート終了、peerDepsをデフォルトでインストールするように変更など
サイト、サービス、ドキュメント
GoogleChrome/lighthouse-ci: Automate running Lighthouse for every commit, viewing the changes, and preventing regressions
github.com/GoogleChrome/lighthouse-ci
継続的にlighthouseの結果を計測し、設定したbudgetに対するassertionを行うためのCIツール。
lighthouseの結果を記録して、項目ごとにAssertionsを設定でき、コミットごとにそのパフォーマンスのリグレッションが発生してないかを継続的にチェックできるツール。
ソフトウェア、ツール、ライブラリ関係
GoogleChromeLabs/native-url: Node's url module implemented using the built-in URL API.
github.com/GoogleChromeLabs/native-url
Node.jsのurl
モジュールをURL
オブジェクトを使って実装したpolyfillライブラリ。
ネイティブのURL APIを使うことで、ファイルサイズが小さくなる。webpackなどのaliasで差し替える方法についても書かれている
pvdz/tenko: An 100% spec compliant ES2020 JavaScript parser written in JS
JavaScriptで書かれたJavaScriptパーサライブラリ。
ES2015+の構文のパースをサポート、またESTree、Acorn、Babel形式のAST出力に対応している。
- pvdz/zeparser2: Next version of my JS (ES5) parser
- pvdz/zeparser3: ZeParser3 was renamed to Tenko -> https://github.com/pvdz/tenko
manuelbieh/geolib: Zero dependency library to provide some basic geo functions
地理座標系の計算を行うライブラリ
lirantal/lockfile-lint: Lint an npm or yarn lockfile to analyze and detect security issues
github.com/lirantal/lockfile-lint
pacage-lock.json
やyarn.lock
のチェックツール。
ポリシーに反する依存がロックファイル含まれていないかチェックするLintツール。
書籍関係
The 2019 Web Almanac
almanac.httparchive.org/en/2019/
HTTP Archiveのレポートと解説を合わせた書籍。
ページコンテンツ、UX、Publishing,
Distributingについて