JSer.info #451 - TypeScript 3.6が正式にリリースされました。
基本的にはβ、RCからの大きな変更はありませんが、Generatorsの型チェック改善、--downlevelIteration
フラグでArray Spreadの仕様に合わせた変換の改善、Promiseの型エラーの改善ながお行われています。
破壊的な変更としてはlib.dom.d.ts
のglobalThis
に関する変更、GlobalFetch
の削除、experimental-webgl
が削除されwebgl
とwebgl2
を使うように変更なども行われています。
また、TypeScript playgroundが https://typescript-play.js.org/ ベースのものに刷新され、
TypeScriptのオプションなど細かい指定ができるようになっています。
リアルタイムアプリやREST API向けのNode.jsフレームワークであるFeathers 4がリリースされています。
コアライブラリがTypeScriptで書き直され型定義ファイルを同梱するようになっています。
また認証の仕組み(Authentication)を作り直したことで、互換性がない変更も含まれています。具体的には次のIssueにまとめられています。
また、認証周りの仕組みの変更に伴うマイグレーションガイドも公開されています。
Using Native JavaScript Modules in Production Today — Philip Waltonという記事では、ブラウザでES Modulesそのものを読み込んで使うための方法について紹介されています。
RollupをつかってnpmモジュールごとにES moduleのchunkを作成し、<script module>
でのロード、modulepreload
でのpreloadについて。
また、Dynamic Importでの動的ロードとpolyfill、ES moduleをサポートしてない環境への<script nonmodule>
での読み込みについてなどについて書かれています。
デモアプリも公開されているので、興味がある人は読んでみるとよさそうです。
- Real Modules with Rollup Demo
- philipwalton/rollup-native-modules-boilerplate: A demo app showcasing the use of real JavaScript modules in production—complete with cross-browser fallbacks for legacy browsers.
JSer.infoをサポートするには
- 😘 知り合いにJSer.infoをおすすめする
- ❤️ GitHub Sponsorsで@azuのスポンサーになる
- 🐦 X(Twitter)で@jser_infoをフォローする
JSer.info Sponsors
JSer.info SponsorsはGitHub SponsorsとしてJSer.infoを支援してくれている方々です。
ヘッドライン
Announcing TypeScript 3.6 | TypeScript
devblogs.microsoft.com/typescript/announcing-typescript-3-6/
TypeScript 3.6リリース。
Generatorsの型チェック改善、--downlevelIteration
フラグでArray Spreadの仕様に合わせた変換の改善、Promiseの型エラーの改善。 --target es2015
でUnicodeの変数名をサポート、Ambient ClassesとFunctionがマージできるようになるなど。
また、Playgroundが https://typescript-play.js.org ベースに更新されるなど
Dojo
Dojo 6リリース。
ESLint v6.3.0 released - ESLint - Pluggable JavaScript linter
eslint.org/blog/2019/08/eslint-v6.3.0-released
ESLint v6.3.0リリース。
eslint --init
でTypeScriptの設定のサポート、設定ファイルにreportUnusedDisableDirectives
を指定できるように
Introducing Feathers 4: A framework for real-time apps and REST APIs
blog.feathersjs.com/introducing-feathers-4-a-framework-for-real-time-apps-and-rest-apis-afff3819055b
Node.jsフレームワークのFeathers 4リリース。
コアライブラリがTypeScriptで書き直され型定義ファイルを同梱するように、認証の仕組みを作り直しプラグインで拡張できるようになるなど。
認証周りの仕組みの変更に伴うマイグレーションガイドも公開されている。
- Feathers | A framework for real-time applications and REST APIs
- Authentication | FeathersJS
- Migrating | FeathersJS
- Authentication next · Issue #1045 · feathersjs/feathers
Release 6.0.0 · systemjs/systemjs
github.com/systemjs/systemjs/releases/tag/6.0.0
systemjs 6.0.0 リリース。
System.onload
のhookを追加、systemjs-importmap
でのImportMap定義の合成をサポート、System.resolve
が同期処理に変更など
アーティクル
Using Native JavaScript Modules in Production Today — Philip Walton
philipwalton.com/articles/using-native-javascript-modules-in-production-today/
ES moduleをそのまま使うためのテクニックについての話。
RollupをつかってnpmモジュールごとにES moduleのchunkを作成し、<script module>
でのロード、modulepreload
でのpreload。
Dynamic Importでの動的ロードとpolyfill、ES moduleをサポートしてない環境への<script nonmodule>
での読み込みについてなど。
Optional chaining · V8
v8.dev/features/optional-chaining
ECMAScript Proposal Stage 3であるOptional Chain(?.
)とnullish coalescing ??
operatorについて。
lodash.get
をどのように置き換えられるかの例など
MarkdownやAsciidoc中に書いたJavaScriptのサンプルコードをdoctestするツールを書いた | Web Scratch
efcl.info/2019/09/02/power-doctest-markdown-asciidoc/
MarkdownやAsciidocのコードブロック内のJavaScriptコードをdoctestするツールやライブラリについて。
コメントで式の期待する評価結果を書くと、assertに変換してテストできる。
Creating an Object Validator in JavaScript the Test-Driven Development Way | Nick Scialli
nick.scialli.me/creating-an-object-validator-the-tdd-way/
オブジェクトのvalidatorをTDDで実装していく話。
テスト、実装、リファクタリングの流れについて
The Baseline Interpreter: a faster JS interpreter in Firefox 70 - Mozilla Hacks - the Web developer blog
hacks.mozilla.org/2019/08/the-baseline-interpreter-a-faster-js-interpreter-in-firefox-70/
Firefox 70に入るJavaScriptのBaseline Interpreterについて。
既存のベースラインJITのコードと上手く共有し、jitScriptと呼ばれる新しくバイトコードインタプリタを追加することでパフォーマンスの改善につながったという話
スライド、動画関係
現代フロントエンドに欠かせないwebpackとBabelを理解しよう - Speaker Deck
speakerdeck.com/mukai21/xian-dai-hurontoendoniqian-kasenaiwebpacktobabelwoli-jie-siyou
Babelやwebpackが何をやっているのかについてのスライド。
Babelがどのようにコードを変換しているのかやwebpackがどのようにモジュールを扱っているのかについて
サイト、サービス、ドキュメント
Using with puppeteer · Jest
Jest内でpuppeteerを使う方法についてのドキュメント
ソフトウェア、ツール、ライブラリ関係
finom/check-imports: Check imports in JS files and update package.json dependencies
github.com/finom/check-imports
コードに書かれているimport
文やrequire
関数などを分析して、package.json
の依存関係を更新するツール
antoinechalifour/memento: Memento is a development-only tool that caches HTTP calls once they have been executed.
github.com/antoinechalifour/memento
開発時にAPIへのリクエストをキャッシュして、モックサーバとして利用できるようにするツール。
CONNECT-platform/connective: agent-based reactive programming library for typescript
github.com/connect-platform/connective
RxJSを使って作られたデータコントールフローライブラリ