Copyright 2025 by Future Corporation
JavaScript/TypeScript 実力強化書
2 章のアップデート
2025/11/27
Forkwell Library #115
フューチャー株式会社
渋川よしき
Copyright 2025 by Future Corporation
お前誰よ
渋川よしき
東京工業大電気電子工学科卒
本田技術研究所: 2004 年 4 月〜 2010 年 12
月
DeNA :〜 2017 年 8 月
フューチャー ( 株 ) : 2017 年 9 月〜
三女の父
著書
つまみぐい勉強法(共著)、 Real World HTTP 第 2 版、
Mithril 、 Go ならわかるシステムプログラミング
エキスパート Python プログラミング、ソフトウェア開発
スクラム、ポモドーロテクニック入門、
アート・オブ・コミュニティ etc
好きな言語
TypeScript / Go / Python / Dart(Flutter)
プログラミング以外
インラインスケート@光が丘公園
アカウント
github.com/shibukawa
x.com/shibu_jp
Copyright 2025 by Future Corporation
Discography
NEW: 12/1 発売
来年は 3 冊 ( 予定 )
Copyright 2025 by Future Corporation
Software Design の特集を書いたきっかけ
● フューチャーに入って最初の案件 (2017 年末)が React/Next.js(3 とか? ) のころだった
● 当時、良いとされる JS の本がなく ( すでに時代遅れの JavaScript: The Good Parts とか推薦書の筆
頭にあがるような時代 ) 、チームメンバー向けに Qiita で記事を書いたらバズった
● 1 年ほどたった 2019 年の 3 月号に掲載された
○ 内容はちょっとマイルドにした。全部アロー関数はデバッグ時に関数名でなくて不便だな、
とか
Copyright 2025 by Future Corporation
2017 年当時の風景
● クラス構文がやっときた!
○ Angular 、 React 、 Vue 、みんなクラスでコンポーネントを作っていた
○ もう prototype って打たなくていい!
● slice, splice を駆使して配列操作つれぇ、 Object.assign() でマージはループでやるよりまし?
○ スプレッド構文すげぇ!
● for in オブジェクトのループでいちいち hasOwnProperty() をループの中でチェック
○ イテレータプロトコルだ! for of だ!
● this を理解したものだけが JavaScript を理解したといえる
○ 単独関数の this はグローバル、メソッドを変数に代入して実行するとグローバル、メソッドで呼ぶとピリオ
ドの左辺が入る、 call/apply で設定可能
○ アロー関数で楽になる!
● 多種多様な alt.js
○ CoffeeScript が覇権だったが、 ES6 が登場し、 Babel(6to5 と呼ばれていた ) でいいじゃん、独自構文じゃな
くていいじゃん、と Babel 優勢に
○ TypeScript も Flow もあったがそこまででもなかった。 Angular が TypeScript を標準採用
○ JSX(DeNA の ) を推してました
Copyright 2025 by Future Corporation
時は流れ・・・
今回更新!!!
Copyright 2025 by Future Corporation
それから 7 年が経った
世の中のトレンドもかなり変化があった
● クラスはかなりニーズが下がり、関数型スタイルが台頭
○ React はクラスコンポーネントから、関数コンポーネント +Hooks に
○ Vue.jsはクラスの API を提供していたが、 Vue3 からコアから脱落
○ 残るは Angular ぐらい?
○ データ構造定義も Zod などが台頭
● TypeScript がメインストリームに
○ .d.tsの定義ファイルを探しまわる、自分で作る→あって当たり前
● 7 年分の ECMAScript のアップデート
● Babel+WebPack → Vite , SWC, TurboPack
○ 環境構築、バージョンアップで工数を取られることはかなり減った
● ブラウザとサーバの技術スタックがかなり近づいた。 Isomorphic という言葉を使わずに当たり前
に
○ Promise や ES6 modules, fetch をはじめとしてブラウザの機能がかなり Node.jsにやってきた・Deno、
Bun も活発に
○ WASM や WinterCG/WinterTC といったムーブメントもあり、エッジサイドやコンテナでも活躍の場は広
がっている
● IE が勇退!
Copyright 2025 by Future Corporation
というわけで
単に ECMAScript で新しく追加された機能を足しただけではなく、現代のトレンドに合わせて大幅アッ
プデート
● クラスの扱いを小さく
● イミュータブル・ミュータブルの説明を追加
○ flatMap, toSorted, toReserved, toSpliced, structuredClone
● 最新の機能
○ using でリソース管理
● JSON 化 or Die
○ Map とか Set よりも Object
● ES6Module なども最新の Node.js に合わせて不要な情報はそぎ落とした
Software Design の総集編を買えばいいよね?買わなくていいよね?という人が損をした、と思っても
らえるぐらいには大幅に手を加えました
Copyright 2025 by Future Corporation
イミュータブルのお話
● もともとこのアップデート用に書き下ろしたわけで
はなく、昨年のアドベントカレンダーで配列回りの
ネタをまとめて書いた内容のダイジェスト版
● この記事ではほとんどのメソッドを
「破壊的」
「イミュータブル」
の形式でまとめていた
● 全部を入れるにはちょっとスペースがなかった
● flatMap() は面白い
○ 1 : 1 変換ではなく、 1 つの要素から複数要素
にしたり、
減らしたりできるので React とかで便利そう
1
2
3
[1, 1]
[ ]
[3, 3, 3]
1 1 3 3 3
Copyright 2025 by Future Corporation
書ききれなかった内容
● 時間ライブラリの最新版の Temporal
○ ちょっと Java 的?コードは長くなりそう
● TypeScript 周りとか
○ 明日の雫石 卓耶産の発表をお楽しみに
● for async of ループとか
○ Promise は今回の依頼外だった
○ 明日の PADAone さんの発表をお楽しみに!
● 環境依存の機能
○ fetch とか、 Compression Streams とか
○ AsyncContext とかも面白そう
● WinterCG/TG
○ サーバーでもブラウザでも使える Request/Response クラスとか
● Rust
○ WASM とかツール開発とかだいたい Rust に
Copyright 2025 by Future Corporation
まとめ
● JavaScript は活発すぎるエコシステム、アクティブな実行環境の進化(ブラウザ、サーバー、エッ
ジ)といろいろな相乗効果で大きく進歩しているので、たまに見直してみるとすごく変わっている
● 言語の方だけではなく、エコシステムからの使われ方も大きく変わった
○ TypeScript( 以外は死んでしまった )
○ コーディングスタイル ( クラス→関数型・イミュータブル )
○ Linter, ビルドツール etc
● AI もよく書いてくれる言語の 1 つに
○ VSCode フォークだと OpenVSX に拡張がないのがネックになったりはあるが・・・
● せっかくなので単著で 1 人で TypeScript の本が書きたい。オファーお待ちしてます。

JavaScript/TypeScript実力強化書 2章のアップデート Forkwell Library

  • 1.
    Copyright 2025 byFuture Corporation JavaScript/TypeScript 実力強化書 2 章のアップデート 2025/11/27 Forkwell Library #115 フューチャー株式会社 渋川よしき
  • 2.
    Copyright 2025 byFuture Corporation お前誰よ 渋川よしき 東京工業大電気電子工学科卒 本田技術研究所: 2004 年 4 月〜 2010 年 12 月 DeNA :〜 2017 年 8 月 フューチャー ( 株 ) : 2017 年 9 月〜 三女の父 著書 つまみぐい勉強法(共著)、 Real World HTTP 第 2 版、 Mithril 、 Go ならわかるシステムプログラミング エキスパート Python プログラミング、ソフトウェア開発 スクラム、ポモドーロテクニック入門、 アート・オブ・コミュニティ etc 好きな言語 TypeScript / Go / Python / Dart(Flutter) プログラミング以外 インラインスケート@光が丘公園 アカウント github.com/shibukawa x.com/shibu_jp
  • 3.
    Copyright 2025 byFuture Corporation Discography NEW: 12/1 発売 来年は 3 冊 ( 予定 )
  • 4.
    Copyright 2025 byFuture Corporation Software Design の特集を書いたきっかけ ● フューチャーに入って最初の案件 (2017 年末)が React/Next.js(3 とか? ) のころだった ● 当時、良いとされる JS の本がなく ( すでに時代遅れの JavaScript: The Good Parts とか推薦書の筆 頭にあがるような時代 ) 、チームメンバー向けに Qiita で記事を書いたらバズった ● 1 年ほどたった 2019 年の 3 月号に掲載された ○ 内容はちょっとマイルドにした。全部アロー関数はデバッグ時に関数名でなくて不便だな、 とか
  • 5.
    Copyright 2025 byFuture Corporation 2017 年当時の風景 ● クラス構文がやっときた! ○ Angular 、 React 、 Vue 、みんなクラスでコンポーネントを作っていた ○ もう prototype って打たなくていい! ● slice, splice を駆使して配列操作つれぇ、 Object.assign() でマージはループでやるよりまし? ○ スプレッド構文すげぇ! ● for in オブジェクトのループでいちいち hasOwnProperty() をループの中でチェック ○ イテレータプロトコルだ! for of だ! ● this を理解したものだけが JavaScript を理解したといえる ○ 単独関数の this はグローバル、メソッドを変数に代入して実行するとグローバル、メソッドで呼ぶとピリオ ドの左辺が入る、 call/apply で設定可能 ○ アロー関数で楽になる! ● 多種多様な alt.js ○ CoffeeScript が覇権だったが、 ES6 が登場し、 Babel(6to5 と呼ばれていた ) でいいじゃん、独自構文じゃな くていいじゃん、と Babel 優勢に ○ TypeScript も Flow もあったがそこまででもなかった。 Angular が TypeScript を標準採用 ○ JSX(DeNA の ) を推してました
  • 6.
    Copyright 2025 byFuture Corporation 時は流れ・・・ 今回更新!!!
  • 7.
    Copyright 2025 byFuture Corporation それから 7 年が経った 世の中のトレンドもかなり変化があった ● クラスはかなりニーズが下がり、関数型スタイルが台頭 ○ React はクラスコンポーネントから、関数コンポーネント +Hooks に ○ Vue.jsはクラスの API を提供していたが、 Vue3 からコアから脱落 ○ 残るは Angular ぐらい? ○ データ構造定義も Zod などが台頭 ● TypeScript がメインストリームに ○ .d.tsの定義ファイルを探しまわる、自分で作る→あって当たり前 ● 7 年分の ECMAScript のアップデート ● Babel+WebPack → Vite , SWC, TurboPack ○ 環境構築、バージョンアップで工数を取られることはかなり減った ● ブラウザとサーバの技術スタックがかなり近づいた。 Isomorphic という言葉を使わずに当たり前 に ○ Promise や ES6 modules, fetch をはじめとしてブラウザの機能がかなり Node.jsにやってきた・Deno、 Bun も活発に ○ WASM や WinterCG/WinterTC といったムーブメントもあり、エッジサイドやコンテナでも活躍の場は広 がっている ● IE が勇退!
  • 8.
    Copyright 2025 byFuture Corporation というわけで 単に ECMAScript で新しく追加された機能を足しただけではなく、現代のトレンドに合わせて大幅アッ プデート ● クラスの扱いを小さく ● イミュータブル・ミュータブルの説明を追加 ○ flatMap, toSorted, toReserved, toSpliced, structuredClone ● 最新の機能 ○ using でリソース管理 ● JSON 化 or Die ○ Map とか Set よりも Object ● ES6Module なども最新の Node.js に合わせて不要な情報はそぎ落とした Software Design の総集編を買えばいいよね?買わなくていいよね?という人が損をした、と思っても らえるぐらいには大幅に手を加えました
  • 9.
    Copyright 2025 byFuture Corporation イミュータブルのお話 ● もともとこのアップデート用に書き下ろしたわけで はなく、昨年のアドベントカレンダーで配列回りの ネタをまとめて書いた内容のダイジェスト版 ● この記事ではほとんどのメソッドを 「破壊的」 「イミュータブル」 の形式でまとめていた ● 全部を入れるにはちょっとスペースがなかった ● flatMap() は面白い ○ 1 : 1 変換ではなく、 1 つの要素から複数要素 にしたり、 減らしたりできるので React とかで便利そう 1 2 3 [1, 1] [ ] [3, 3, 3] 1 1 3 3 3
  • 10.
    Copyright 2025 byFuture Corporation 書ききれなかった内容 ● 時間ライブラリの最新版の Temporal ○ ちょっと Java 的?コードは長くなりそう ● TypeScript 周りとか ○ 明日の雫石 卓耶産の発表をお楽しみに ● for async of ループとか ○ Promise は今回の依頼外だった ○ 明日の PADAone さんの発表をお楽しみに! ● 環境依存の機能 ○ fetch とか、 Compression Streams とか ○ AsyncContext とかも面白そう ● WinterCG/TG ○ サーバーでもブラウザでも使える Request/Response クラスとか ● Rust ○ WASM とかツール開発とかだいたい Rust に
  • 11.
    Copyright 2025 byFuture Corporation まとめ ● JavaScript は活発すぎるエコシステム、アクティブな実行環境の進化(ブラウザ、サーバー、エッ ジ)といろいろな相乗効果で大きく進歩しているので、たまに見直してみるとすごく変わっている ● 言語の方だけではなく、エコシステムからの使われ方も大きく変わった ○ TypeScript( 以外は死んでしまった ) ○ コーディングスタイル ( クラス→関数型・イミュータブル ) ○ Linter, ビルドツール etc ● AI もよく書いてくれる言語の 1 つに ○ VSCode フォークだと OpenVSX に拡張がないのがネックになったりはあるが・・・ ● せっかくなので単著で 1 人で TypeScript の本が書きたい。オファーお待ちしてます。

Editor's Notes

  • #2 バズったツイートを並べておく 最近やったゲーム?