Fork me on GitHub

2019-11-12のJS: TypeScript 3.7正式リリース、Babel 7.7.0、npmロードマップ、Web Almanac

Edit on GitHub 編集履歴を見る

JSer.info #461 - TypeScript 3.7の正式版がリリースされました。

Playgroundで更新内容を確認できるようになり、新しく増えた構文などのサンプルコードが確認できるようになっています。

構文として新しく増えているため、TypeScriptをサポートしているツールチェイン周りもアップデートが必要になります。
ECMASCript Proposal(Stage 3)のOptional ChainingNullish 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 Sponsors

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


ヘッドライン


Announcing TypeScript 3.7 | TypeScript

devblogs.microsoft.com/typescript/announcing-typescript-3-7/

TypeScript ReleaseNote

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

JavaScript Tools Vue ReleaseNote

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 ReleaseNote

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 ReleaseNote

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 ReleaseNote

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/

JavaScript SQL article

ANTLRを使ったSQL構文のパーサをJavaScriptで書く方法についての記事


Rethinking frontend APM - LogRocket Blog

blog.logrocket.com/rethinking-frontend-apm/

webservice performance article

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 article news

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

browser performance CI testing

継続的に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

JavaScript URL library node.js

Node.jsのurlモジュールをURLオブジェクトを使って実装したpolyfillライブラリ。
ネイティブのURL APIを使うことで、ファイルサイズが小さくなる。webpackなどのaliasで差し替える方法についても書かれている


pvdz/tenko: An 100% spec compliant ES2020 JavaScript parser written in JS

github.com/pvdz/tenko

JavaScript AST library

JavaScriptで書かれたJavaScriptパーサライブラリ。
ES2015+の構文のパースをサポート、またESTree、Acorn、Babel形式のAST出力に対応している。


manuelbieh/geolib: Zero dependency library to provide some basic geo functions

github.com/manuelbieh/geolib

JavaScript library

地理座標系の計算を行うライブラリ


lirantal/lockfile-lint: Lint an npm or yarn lockfile to analyze and detect security issues

github.com/lirantal/lockfile-lint

npm yarn security Tools testing

pacage-lock.jsonyarn.lockのチェックツール。
ポリシーに反する依存がロックファイル含まれていないかチェックするLintツール。


書籍関係


The 2019 Web Almanac

almanac.httparchive.org/en/2019/

browser HTTP book

HTTP Archiveのレポートと解説を合わせた書籍。
ページコンテンツ、UX、Publishing,
Distributingについて


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