Fork me on GitHub

2018-04-01のJS: TypeScript 2.8、React 16.3.0、TensorFlow.js

Edit on GitHub 編集履歴を見る

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コンポーネントのライフサイクルイベントの変更が行われています。
componentWillMountcomponentWillReceivePropscomponentWillUpdateは今後削除されていく方向になり、代わりにgetDerivedStateFromPropsgetSnapshotBeforeUpdateが追加されています。

次のようなタイムラインで上記のライフサイクルイベントのAPIの削除が行われていくようです。

  • 16.3: それぞれaliasとなるUNSAFE_componentWillMount, UNSAFE_componentWillReceiveProps, UNSAFE_componentWillUpdateの追加
  • 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にかかれています。


ヘッドライン


React v16.3.0: New lifecycles and context API - React Blog

reactjs.org/blog/2018/03/29/react-v-16-3.html

React ReleaseNote

React v16.3.0リリース。
新しいContext APIの追加、createRefメソッドの追加、forwardRefメソッドの追加。
コンポーネントライフサイクルイベントの変更と追加、StrictModeコンポーネントの追加など


March 2018 Security Releases | Node.js

nodejs.org/en/blog/vulnerability/march-2018-security-releases/

node.js ReleaseNote security

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 Chrome ReleaseNote

V8 v6.6(Chrome 66)リリース。
ECMAScript Proposalの対応としてFunction#toString()の仕様追従、JSがJSONのsupersetとなる仕様追従。
またcatch構文のパラメータを省略に対応、String#trimStartString#trimEndの実装など。
Background compilationの対応やAsync、Arrayのパフォーマンス改善など


ZEIT – Next.js 5.1: Faster Page Resolution, Environment Config & More

zeit.co/blog/next5-1

React node.js library ReleaseNote

Next.js 5.1リリース。
ページロードの速度改善、設定を定義できるpublicRuntimeConfigserverRuntimeConfigを追加、エラーハンドリングの改善など


Release v3.4.0 · storybooks/storybook

github.com/storybooks/storybook/releases/tag/v3.4.0

JavaScript ui library ReleaseNote Tools

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

JavaScript testing library Tools ReleaseNote

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

JavaScript Tools ReleaseNote

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

Sass dart ReleaseNote

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 serverless

ESLint 5.0.0αリリース。
予定される破壊的な変更についてはマイグレーションガイドで解説されている。


Announcing TypeScript 2.8 | TypeScript

blogs.msdn.microsoft.com/typescript/2018/03/27/announcing-typescript-2-8/

ReleaseNote TypeScript

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

node.js server library performance

Server Timinig APIを使いサーバサイドのリクエストごとのベンチマークをとり、Chromeの開発者ツールに表示するライブラリについて


Update on Async Rendering - React Blog

reactjs.org/blog/2018/03/27/update-on-async-rendering.html

React article

非同期レンダリングのためのライフサイクルイベントの追加と変更について。
16.3でイベントの追加、16.xで古いイベントに警告を表示、17.0で古いイベントを廃止。
また追加されたgetDerivedStateFromPropsgetSnapshotBeforeUpdateについての解説


Working with the new CSS Typed Object Model  |  Web  |  Google Developers

developers.google.com/web/updates/2018/03/cssom

CSS article JavaScript

CSS Typed OMについての解説。
すでにあるstyleプロパティと新しく追加されたattributeStyleMapの違いや、CSS Typed OMで追加されたAPIのメリットや実際の使い方について


WebAssembly/esm-integration: ECMAScript module integration

github.com/WebAssembly/esm-integration

WebAssembly module ECMAScript

ES Module Integration Proposal for WebAssembly


How display: contents; Works

bitsofco.de/how-display-contents-works/

CSS article

display: contents; の解説


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


CondeNast/perf-timeline-cli: Generate Chrome Performance Timelines via a command line interface

github.com/CondeNast/perf-timeline-cli

Chrome performance Tools

Chrome開発者ツールのPerformanceパネルの情報を取得するCLIツール。
Puppeteerを使ってアクセスした結果を取得する


JavaScript in 14 minutes by Jeremy Thomas

jgthms.com/javascript-in-14-minutes/

JavaScript tutorial

ブラウザの開発者ツールで実行しながら学べるJavaScriptチュートリアル


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


cmseaton42/task-easy: A simple, customizable, and lightweight priority queue for promises.

github.com/cmseaton42/task-easy

JavaScript Promises library

Promiseスケジュールライブラリ


asfktz/Awaity.js: A functional, lightweight alternative to bluebird.js, built with async / await in mind.

github.com/asfktz/Awaity.js

JavaScript Promises library

async/awaitベースのコレクション系ライブラリ
map、filter、reduceなどのPromiseに対するコレクション操作を提供するライブラリ


jacobbogers/libRmath.js: Javascript Pure Implementation of Statistical R "core" numerical libRmath.so

github.com/jacobbogers/libRmath.js

JavaScript TypeScript R library

RのmathをJavaScriptにポートしたライブラリ


TensorFlow.js

js.tensorflow.org/

MachineLearning JavaScript library WebGL

tensorflowのJavaScript版。
WebGLを使った機械学習を行え、既存の学習モデルはconverterで変換し利用できる。


jaywcjlove/hotkeys: ➷ A robust Javascript library for capturing keyboard input. It has no dependencies.

github.com/jaywcjlove/hotkeys

JavaScript キーボード React library

ショートカットキー管理ライブラリ。


書籍関係


React開発 現場の教科書 | マイナビブックス

book.mynavi.jp/ec/products/detail/id=88735

React book

ReactとAtomic Designについての書籍


CSS Pocket Reference, 5th Edition - O'Reilly Media

shop.oreilly.com/product/0636920146353.do

CSS book

2018年4月発売。
CSSリファレンス本


この記事へ修正リクエストをする
記事を紹介する