JSer.info #377 - TypeScript 2.8が正式リリースされました。
Conditional Typesのサポートされ、またConditional Typesを使ったビルトインの型としてExclude<T, U>
, Extract<T, U>
, NonNullable<T>
, ReturnType<T>
, InstanceType<T>
が追加されています。
mapped type modifierの+
、-
のサポート、.d.ts
ファイルだけを出力できるemitDeclarationOnly
オプションの追加、@jsx
プラグマコメントのサポートなどが行われています。
React 16.3.0がリリースされました。
今後に向けた大きな変更が追加されています。
新しいContext APIの追加、createRef
メソッドの追加、forwardRef
メソッドの追加、StrictMode
コンポーネントの追加などが行われています。
また非同期レンダリングのサポートのためなどにReactコンポーネントのライフサイクルイベントの変更が行われています。
componentWillMount
、componentWillReceiveProps
、componentWillUpdate
は今後削除されていく方向になり、代わりにgetDerivedStateFromProps
とgetSnapshotBeforeUpdate
が追加されています。
次のようなタイムラインで上記のライフサイクルイベントのAPIの削除が行われていくようです。
- 16.3: それぞれaliasとなる
UNSAFE_componentWillMount
,UNSAFE_componentWillReceiveProps
,UNSAFE_componentWillUpdate
の追加UNSAFE_
prefixへのマイグレーションスクリプトとしてrename-unsafe-lifecyclesが公開されている
- A future 16.x release:
componentWillMount
,componentWillReceiveProps
,componentWillUpdate
は非推奨となり警告を表示 - 17.0:
componentWillMount
,componentWillReceiveProps
,componentWillUpdate
を削除- ただし緩やかなマイグレーションのために
UNSAFE_
版は17.xでも動作を維持する
- ただし緩やかなマイグレーションのために
そのため、古いAPIが完全に削除されるのは18.0となる予定です。(UNSAFE_
版は17.xでも残るため)
詳しくは次の記事で解説されています。
TensorFlow.jsはブラウザでTensorFlowのモデルを使った機械学習を行えるライブラリです。
元々Googleが開発していたdeeplearn.jsの後継バージョンとして公開されています。
JavaScriptとhigh-level layers APIで機械学習を行えるため、初めて機械学習を学ぶJavaScript開発者をターゲットについていることなどについてが次の記事で書かれています。
また、既存のTensorFlowやKerasのモデルを変換してインポートできブラウザ上で再学習なども行えます。
現在はWebGLに依存しているためブラウザのみで動作し、Node.jsのサポートについては検討中であることなどがFAQにかかれています。
JSer.infoをサポートするには
- 😘 知り合いにJSer.infoをおすすめする
- ❤️ GitHub Sponsorsで@azuのスポンサーになる
- 🐦 X(Twitter)で@jser_infoをフォローする
JSer.info Sponsors
JSer.info SponsorsはGitHub SponsorsとしてJSer.infoを支援してくれている方々です。
ヘッドライン
React v16.3.0: New lifecycles and context API - React Blog
reactjs.org/blog/2018/03/29/react-v-16-3.html
React v16.3.0リリース。
新しいContext APIの追加、createRef
メソッドの追加、forwardRef
メソッドの追加。
コンポーネントライフサイクルイベントの変更と追加、StrictMode
コンポーネントの追加など
- Update on Async Rendering - React Blog
- React v16.3.0: New lifecycles and context API【日本語翻訳】 | maesblog
March 2018 Security Releases | Node.js
nodejs.org/en/blog/vulnerability/march-2018-security-releases/
Node.jsのセキュリティアップデートとして、それぞれのLTSと開発バージョンのアップデートが公開された
- Node.js 9.10.0
- Node.js 8.11.0 (LTS "Carbon")
- Node.js 6.14.0 (LTS "Boron")
- Node.js 4.9.0 (LTS "Argon")
V8 JavaScript Engine: V8 release v6.6
v8project.blogspot.com/2018/03/v8-release-66.html
V8 v6.6(Chrome 66)リリース。
ECMAScript Proposalの対応としてFunction#toString()
の仕様追従、JSがJSONのsupersetとなる仕様追従。
またcatch
構文のパラメータを省略に対応、String#trimStart
やString#trimEnd
の実装など。
Background compilationの対応やAsync、Arrayのパフォーマンス改善など
- Function.prototype.toString revision
- tc39/proposal-json-superset: Proposal to make all JSON text valid ECMA-262
- tc39/proposal-string-left-right-trim: A proposal to the ECMAScript standard for including left and right trim of whitespace to strings
ZEIT – Next.js 5.1: Faster Page Resolution, Environment Config & More
Next.js 5.1リリース。
ページロードの速度改善、設定を定義できるpublicRuntimeConfig
とserverRuntimeConfig
を追加、エラーハンドリングの改善など
Release v3.4.0 · storybooks/storybook
github.com/storybooks/storybook/releases/tag/v3.4.0
Storybook 3.4.0リリース。
Polymer 2サポート、AngularとVueのstoryshotサポートなど
power-assert/CHANGELOG.md at v1.5.0 · power-assert-js/power-assert
github.com/power-assert-js/power-assert/blob/v1.5.0/CHANGELOG.md
power-assert 1.5.0リリース。
Node.js 9.9.0で追加されたassert
のstrict modeをサポート
📦 Parcel v1.7.0: – devongovett – Medium
medium.com/@devongovett/parcel-v1-7-0-9aac0c505837
Parcel v1.7.0リリース。
.vue
とPugのサポート、出力するファイルにハッシュ値を付与するように、absolute pathとtilde(~
) pathのサポート、必要な依存を自動的にインストールするようになるなど
Dart Sass 1.0.0 is Released « Sass Blog
sass.logdown.com/posts/7045860-dart-sass-100-is-released
Dart Sass 1.0リリース。
Ruby Sassについてはメンテナンスモードとなる。
ESLint v5.0.0-alpha.0 released - ESLint - Pluggable JavaScript linter
eslint.org/blog/2018/03/eslint-v5.0.0-alpha.0-released
ESLint 5.0.0αリリース。
予定される破壊的な変更についてはマイグレーションガイドで解説されている。
Announcing TypeScript 2.8 | TypeScript
blogs.msdn.microsoft.com/typescript/2018/03/27/announcing-typescript-2-8/
TypeScript 2.8リリース。 Conditional Types、d.tsのみの出力に対応、@jsx
pragmaコメントのサポート、mapped type modifierの+
、-
のサポートなど
アーティクル
Server Timing APIを使ってサーバーサイドのベンチマークを手軽にやる | ブログ :: Web notes.log
blog.wnotes.net/blog/article/server-side-benchmark-using-server-timing-api
Server Timinig APIを使いサーバサイドのリクエストごとのベンチマークをとり、Chromeの開発者ツールに表示するライブラリについて
Update on Async Rendering - React Blog
reactjs.org/blog/2018/03/27/update-on-async-rendering.html
非同期レンダリングのためのライフサイクルイベントの追加と変更について。
16.3でイベントの追加、16.xで古いイベントに警告を表示、17.0で古いイベントを廃止。
また追加されたgetDerivedStateFromProps
とgetSnapshotBeforeUpdate
についての解説
Working with the new CSS Typed Object Model | Web | Google Developers
developers.google.com/web/updates/2018/03/cssom
CSS Typed OMについての解説。
すでにあるstyle
プロパティと新しく追加されたattributeStyleMap
の違いや、CSS Typed OMで追加されたAPIのメリットや実際の使い方について
WebAssembly/esm-integration: ECMAScript module integration
github.com/WebAssembly/esm-integration
ES Module Integration Proposal for WebAssembly
How display: contents; Works
bitsofco.de/how-display-contents-works/
display: contents;
の解説
サイト、サービス、ドキュメント
CondeNast/perf-timeline-cli: Generate Chrome Performance Timelines via a command line interface
github.com/CondeNast/perf-timeline-cli
Chrome開発者ツールのPerformanceパネルの情報を取得するCLIツール。
Puppeteerを使ってアクセスした結果を取得する
JavaScript in 14 minutes by Jeremy Thomas
jgthms.com/javascript-in-14-minutes/
ブラウザの開発者ツールで実行しながら学べるJavaScriptチュートリアル
ソフトウェア、ツール、ライブラリ関係
cmseaton42/task-easy: A simple, customizable, and lightweight priority queue for promises.
github.com/cmseaton42/task-easy
Promiseスケジュールライブラリ
asfktz/Awaity.js: A functional, lightweight alternative to bluebird.js, built with async / await in mind.
async/awaitベースのコレクション系ライブラリ
map、filter、reduceなどのPromiseに対するコレクション操作を提供するライブラリ
jacobbogers/libRmath.js: Javascript Pure Implementation of Statistical R "core" numerical libRmath.so
github.com/jacobbogers/libRmath.js
Rのmath
をJavaScriptにポートしたライブラリ
TensorFlow.js
tensorflowのJavaScript版。
WebGLを使った機械学習を行え、既存の学習モデルはconverterで変換し利用できる。
jaywcjlove/hotkeys: ➷ A robust Javascript library for capturing keyboard input. It has no dependencies.
ショートカットキー管理ライブラリ。
書籍関係
React開発 現場の教科書 | マイナビブックス
book.mynavi.jp/ec/products/detail/id=88735
ReactとAtomic Designについての書籍
CSS Pocket Reference, 5th Edition - O'Reilly Media
shop.oreilly.com/product/0636920146353.do
2018年4月発売。
CSSリファレンス本