Skip to content

Commit 790df11

Browse files
committedSep 10, 2021
publish 3rd impression with part i
1 parent b415d70 commit 790df11

File tree

5 files changed

+237
-16
lines changed

5 files changed

+237
-16
lines changed
 

‎01-hello/02-hello-world/tsconfig.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
"resolveJsonModule": true,
1919
"isolatedModules": true,
2020
"noEmit": true,
21-
"jsx": "react"
21+
"jsx": "react-jsx"
2222
},
2323
"include": [
2424
"src"

‎CHANGELOG.md

+34
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,40 @@
11
<!-- markdownlint-disable MD024 -->
22
# 各版・各刷における内容の変更
33

4+
## 第3.1版 第3刷(2021-09 発行)
5+
6+
### ■ 対応パッケージのアップデート
7+
8+
- 主なパッケージの対応バージョンを以下にアップデート
9+
- **TypeScript** 4.2.3 → 4.4.2
10+
11+
### 第1章&nbsp; こんにちは React
12+
13+
#### 1-2. プロジェクトを作成する
14+
15+
- 脚注における winget(Windows Package Manager)について、2021 年 5 月 26 日にバージョン 1.0 が正式にリリースされたため、説明をアップデート。
16+
17+
### 第2章&nbsp; エッジでディープな JavaScript の世界
18+
19+
#### 2-1. あらためて JavaScript ってどんな言語?
20+
21+
- ES2021 の正式仕様が 2021 年 6 月 21 日にリリースされたので、ECMAScript 最新版についての記述をアップデート。
22+
- Stackoverflow Developer Survey の結果についての説明を 2020 のものから 2021 にアップデート。
23+
24+
### 第4章&nbsp; TypeScript で型をご安全に
25+
26+
#### 4-1. TypeScript はイケイケの人気言語?
27+
28+
- GitHut、Stack Overflow Developer Survey の結果についての説明を 2020 のものから 2021 にアップデート。
29+
- TypeScript 4.3 においてコンパイルターゲットに `es2021` が追加され、`esnext` が ES2021 に相当するようになったため、説明をアップデート。
30+
31+
### 第7章&nbsp; React をめぐるフロントエンドの歴史
32+
33+
#### 7-5. 他のフレームワークとの比較
34+
35+
- Angular が TSLint → ESLint への移行を公式でやることを断念、将来的にデフォルト linter を廃止し Angular ESLint と連携することになったため、説明をアップデート。
36+
- LitElement がバージョンアップで lit-html を統合・リブランディングして Lit 2.0 になったため、説明をアップデート。
37+
438
## 第3.1版 第2刷(2021-04-01 発行)
539

640
### ■ 対応パッケージのアップデート

‎errata.md

+68-9
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
11
<!-- markdownlint-disable MD010 MD029 MD032 -->
22
# 『りあクト! TypeScript で始めるつらくない React 開発 &nbsp;第3.1版』初版第 1 刷の正誤表・更新情報
33

4-
最終更新日: 2021 年 418
4+
最終更新日: 2021 年 910
55

66
### ご注意点
77

8-
- この正誤表は 2020 年 12 月 26 日に発行された**初版第 1 刷**の内容をベースにしています。第 2 刷をお持ちの場合は[そちらに対応したページ](errata2.md)をご覧ください
8+
- この正誤表は 2020 年 12 月 26 日に発行された** 1 刷**の内容をベースにしています。第 2 刷をお持ちの場合は[こちら](errata2.md)、第 3 刷をお持ちの場合は[こちら](errata3.md)ご覧ください。お手持ちの本がどれに該当するかは、最後の奥付けのページに記載されています
99
- 正誤表の内容は随時アップデートされます。
10-
- 記述しているページ番号は、紙の初版第 1 刷に対応していますが、電子版では内容の更新によりお持ちのバージョンによって前後することがあります。
10+
- 記述しているページ番号は、紙の第 1 刷に対応していますが、電子版では内容の更新によりお持ちのバージョンによって前後することがあります。
1111
- 電子版については随時、修正やアップデートが反映された新しいバージョンが配信されます。購入先のサイトをご確認ください。なお現時点での最新版は以下の通りです。
12-
- 【Ⅰ. 言語・環境編】バージョン 2.0.2(2021-04-18
12+
- 【Ⅰ. 言語・環境編】バージョン 3.0.1(2021-09-10
1313
- 【Ⅱ. React 基礎編】バージョン 2.1.1(2021-04-18)
1414
- 【Ⅲ. React 応用編】バージョン 2.0.2(2021-04-18)
1515

1616
### 電子版のバージョニングについて
1717

18-
- **整数の位** …… 紙の本の「刷」番号に対応しています。「電子版バージョン 2.0.0」であれば、紙の本の「初版第 2 刷」の内容と完全に一致します
18+
- **整数の位** …… 紙の本の「刷」番号に対応しています。「電子版バージョン 2.0.0」であれば、紙の本の「 2 刷」の内容と完全に一致します
1919
- **小数点第 1 位** …… メジャーバージョン番号。各技術のアップデートや情勢の変化に合わせて内容が更新されたときに変更されます
2020
- **小数点第 2 位** …… マイナーバージョン番号。誤植の修正があったときに変更されます
2121

@@ -41,6 +41,16 @@
4141
+ console.log(obj2); // { a: 1, b: 2, c: 3, d: 99, e: 5 }
4242
```
4343

44+
- 2-3 / p.63
45+
46+
```diff
47+
・配列リテラル
48+
…… [1, 2, 3] の形式で記述する。[] は空の配列を示す。arr[n] という構文で
49+
- n-1 番め
50+
+ n+1 番め
51+
の要素にアクセスできる。
52+
```
53+
4454
- 2-8 / p.105
4555

4656
```diff
@@ -57,7 +67,7 @@
5767
```
5868

5969
- 3-2 / p.128-129
60-
`sort` メソッドが破壊的であることの注意と、JavaScript で破壊的メソッドを非破壊的に運用するための方法の説明を追加。
70+
`sort` メソッドが破壊的であることの注意と、JavaScript で破壊的メソッドを非破壊的に運用するための方法の説明を追加。
6171

6272
```diff
6373
「そっか、そういう使い方もできるんですね」
@@ -73,7 +83,7 @@
7383
> console.log(arr); // [ 2, 3, 5, 12, 24 ]
7484
> ```
7585
>
76-
> 「えっ、これやばくないですか? それにこれ見て思いましたけど、JavaScript って破壊的メソッドと非破壊的メソッドが混在してて見分ける方法がないのひどいですね。Ruby なら破壊的メソッドには `sort!` みたいに末尾に `!` がつくのでわかりやすいのに」
86+
> 「えっ、これやばくないですか? それにこれ見て思いましたけど、JavaScript って破壊的メソッドと非破壊的メソッドが混在してて見分ける方法がないのひどいですね。Ruby なら破壊的メソッドには `sort!` みたいに末尾に `!` がつくのでわかりやすいのに」
7787
> 「うん、例によって歴史的経緯でこうなっちゃってるんだろうね。どれが破壊的でどれが非破壊的なのかは、これはもう丸暗記するしかない。それで JavaScript の配列の破壊的メソッドを非破壊的に使うには裏技があって、`slice` メソッドを間にはさむといいの。`slice()` は本来、配列から任意の範囲をシャローコピーして返してくれるメソッドなんだけど、引数を省略するとその配列全体をコピーしてくれる」
7888
>
7989
> ```
@@ -82,7 +92,7 @@
8292
> console.log(arr); // [ 12, 2, 3, 24, 5 ]
8393
> ```
8494
>
85-
> 「なるほど。これならそんなに追加のコード量は増えませんし、いいですね。`sort()` を使う際には忘れないようにしないと」
95+
> 「なるほど。これならそんなに追加のコード量は増えませんし、いいですね。`sort()` を使う際には忘れないようにしないと」
8696
> 「うん、ちょっとめんどうだけどそうしてね。
8797
8898
<br />
@@ -121,7 +131,47 @@
121131
で 'warn' になってるので警告が出てたわけ。
122132
```
123133

124-
- 7-5 / p.122
134+
- 6-2 / p.70 / 脚注
135+
136+
```diff
137+
- 77 https://p9rettier.io/playground/
138+
+ 77 https://prettier.io/playground/
139+
```
140+
141+
- 6-2 / p.73 / サンプルコード
142+
143+
```diff
144+
singleQuote: true
145+
trailingComma: "all"
146+
+ endOfLine: "auto"
147+
```
148+
149+
- 6-2 / p.74 / サンプルコード
150+
151+
```diff
152+
"scripts": {
153+
154+
- "lint:fix": "eslint --fix 'src/**/*.{js,jsx,ts,tsx}'",
155+
+ "eject": "react-scripts eject",
156+
+ "fix": "npm run -s format && npm run -s lint:fix",
157+
+ "format": "prettier --write --loglevel=warn '{public,src}/**/*.{js,jsx,ts,tsx,html,gql,graphql,json}'",
158+
"lint": "eslint 'src/**/*.{js,jsx,ts,tsx}'",
159+
"lint:fix": "eslint --fix 'src/**/*.{js,jsx,ts,tsx}'",
160+
+ "lint:conflict": "eslint --print-config .eslintrc.js | eslint-config-prettier-check",
161+
"preinstall": "typesync"
162+
},
163+
```
164+
165+
- 7-5 / p.118
166+
167+
```diff
168+
ちなみに React が 16.1 万、Angular が 6.8 万。まあ Vue のスターが多いのは Evan You が中国人で、アリババやテンセントといった中国での採用事例が多いことによる
169+
- 組織標的
170+
+ 組織票的
171+
な色合いが強いと思うけど」
172+
```
173+
174+
- 7-5 / p.122
125175

126176
```diff
127177
 それに公式ドキュメントも明らかに必要な情報が網羅しきれてない。説明もわかりにくく、React や Vue と比べると格段に見劣りする。
@@ -130,6 +180,15 @@
130180
は本気で LitElement を普及させる気があるのかと疑いたくなるよ」
131181
```
132182

183+
- 8-3 / p.141
184+
185+
```diff
186+
「クラス宣言で Component クラスを拡張するときに 2 つめの型引数で渡されてますね。props のときと違って、
187+
- Component<unknown, AppState>
188+
+ Component<unknown, State>
189+
と型引数が 2 つあります」
190+
```
191+
133192
<br />
134193

135194
## 【Ⅲ. React 応用編】

‎errata2.md

+88-6
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,80 @@
11
<!-- markdownlint-disable MD010 MD029 MD032 -->
22
# 『りあクト! TypeScript で始めるつらくない React 開発 &nbsp;第3.1版』の正誤表・更新情報
33

4-
最終更新日: 2021 年 418
4+
最終更新日: 2021 年 910
55

66
### ご注意点
77

8-
- この正誤表は 20201226 日に発行された**初版第 2 刷**の内容をベースにしています。第 1 刷をお持ちの場合は[そちらに対応したページ](errata.md)をご覧ください
8+
- この正誤表は 202141 日に発行された** 2 刷**の内容をベースにしています。第 1 刷をお持ちの場合は[こちら](errata.md)、第 3 刷をお持ちの場合は[こちら](errata3.md)ご覧ください。お手持ちの本がどれに該当するかは、最後の奥付けのページに記載されています
99
- 正誤表の内容は随時アップデートされます。
10-
- 記述しているページ番号は、紙の初版第 2 刷に対応していますが、電子版では内容の更新によりお持ちのバージョンによって前後することがあります。
10+
- 記述しているページ番号は、紙の第 2 刷に対応していますが、電子版では内容の更新によりお持ちのバージョンによって前後することがあります。
1111
- 電子版については随時、修正やアップデートが反映された新しいバージョンが配信されます。購入先のサイトをご確認ください。なお現時点での最新版は以下の通りです。
12-
- 【Ⅰ. 言語・環境編】バージョン 2.0.2(2021-04-18
12+
- 【Ⅰ. 言語・環境編】バージョン 3.0.1(2021-09-10
1313
- 【Ⅱ. React 基礎編】バージョン 2.1.1(2021-04-18)
1414
- 【Ⅲ. React 応用編】バージョン 2.0.2(2021-04-18)
1515

1616
### 電子版のバージョニングについて
1717

18-
- **整数の位** …… 紙の本の「刷」番号に対応しています。「電子版バージョン 2.0.0」であれば、紙の本の「初版第 2 刷」の内容と完全に一致します
18+
- **整数の位** …… 紙の本の「刷」番号に対応しています。「電子版バージョン 2.0.0」であれば、紙の本の「 2 刷」の内容と完全に一致します
1919
- **小数点第 1 位** …… メジャーバージョン番号。各技術のアップデートや情勢の変化に合わせて内容が更新されたときに変更されます
2020
- **小数点第 2 位** …… マイナーバージョン番号。誤植の修正があったときに変更されます
2121

2222
<br />
2323

2424
## 【Ⅰ. 言語・環境編】
2525

26-
現在のところ、修正・更新部分はありません。
26+
- 2-3 / p.63
27+
28+
```diff
29+
・配列リテラル
30+
…… [1, 2, 3] の形式で記述する。[] は空の配列を示す。arr[n] という構文で
31+
- n-1 番め
32+
+ n+1 番め
33+
の要素にアクセスできる。
34+
```
2735

2836
<br />
2937

3038
## 【Ⅱ. React 基礎編】
3139

40+
- 6-2 / p.70 / サンプルコード
41+
42+
```diff
43+
"scripts": {
44+
45+
- "lint:fix": "eslint --fix 'src/**/*.{js,jsx,ts,tsx}'",
46+
+ "fix": "npm run -s format && npm run -s lint:fix",
47+
+ "format": "prettier --write --loglevel=warn '{public,src}/**/*.{js,jsx,ts,tsx,html,gql,graphql,json}'",
48+
"lint": "eslint 'src/**/*.{js,jsx,ts,tsx}'",
49+
+ "lint:conflict": "eslint --print-config .eslintrc.js | eslint-config-prettier-check",
50+
"preinstall": "typesync"
51+
},
52+
```
53+
54+
- 6-2 / p.71 / サンプルコード
55+
56+
```diff
57+
singleQuote: true
58+
trailingComma: "all"
59+
+ endOfLine: "auto"
60+
```
61+
62+
- 6-2 / p.72 / サンプルコード
63+
64+
```diff
65+
"scripts": {
66+
67+
- "lint:fix": "eslint --fix 'src/**/*.{js,jsx,ts,tsx}'",
68+
+ "eject": "react-scripts eject",
69+
+ "fix": "npm run -s format && npm run -s lint:fix",
70+
+ "format": "prettier -- write --loglevel=warn' {public,src}/**/*.{js,jsx,ts,tsx,html,gql,graphql,json}'",
71+
"lint": "eslint 'src/**/*.{js,jsx,ts,tsx}'",
72+
"lint:fix": "eslint --fix 'src/**/*.{js,jsx,ts,tsx}'",
73+
+ "lint:conflict": "eslint --print-config .eslintrc.js | eslint-config-prettier-check",
74+
"preinstall": "typesync"
75+
},
76+
```
77+
3278
- 6-4 / p.83
3379
simple-git-hooks がバージョン 2.3(2021-04-02)から Git Hooks の削除機能を実装したため、該当する部分の説明を変更。
3480

@@ -47,6 +93,42 @@ simple-git-hooks がバージョン 2.3(2021-04-02)から Git Hooks の削
4793
- 6-4 / p.85
4894
mrm がバージョン 5.0.0(2021-04-01)で simple-git-hooks から再度 husky v6 を採用したことにより、lint-staged も同様に推奨パッケージを husky に戻したため、その部分の説明を修正。
4995

96+
- 7-5 / p.118
97+
98+
```diff
99+
ちなみに React が 16.1 万、Angular が 6.8 万。まあ Vue のスターが多いのは Evan You が中国人で、アリババやテンセントといった中国での採用事例が多いことによる
100+
- 組織標的
101+
+ 組織票的
102+
な色合いが強いと思うけど」
103+
```
104+
105+
- 7-5 / p.122
106+
107+
```diff
108+
 それに公式ドキュメントも明らかに必要な情報が網羅しきれてない。説明もわかりにくく、React や Vue と比べると格段に見劣りする。
109+
- Gogole
110+
+ Google
111+
は本気で LitElement を普及させる気があるのかと疑いたくなるよ」
112+
```
113+
114+
- 8-3 / p.130
115+
116+
```diff
117+
「ここはちょっと事情が複雑なので順を追って説明させてね。まず React の関数コンポーネントの型インターフェースには FunctionComponent が用意されてる。これはより短い名前の
118+
- VFC
119+
+ FC
120+
でエイリアスされてるんだけど、
121+
```
122+
123+
- 8-3 / p.142
124+
125+
```diff
126+
「クラス宣言で Component クラスを拡張するときに 2 つめの型引数で渡されてますね。props のときと違って、
127+
- Component<unknown, AppState>
128+
+ Component<unknown, State>
129+
と型引数が 2 つあります」
130+
```
131+
50132
- 9-3 / p.179
51133

52134
```diff

‎errata3.md

+46
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
<!-- markdownlint-disable MD010 MD029 MD032 -->
2+
# 『りあクト! TypeScript で始めるつらくない React 開発 &nbsp;第3.1版』の正誤表・更新情報
3+
4+
最終更新日: 2021 年 9 月 10 日
5+
6+
### ご注意点
7+
8+
- この正誤表は 2021 年 4 月 1 日に発行された**第 3 刷**の内容をベースにしています。第 1 刷をお持ちの場合は[こちら](errata.md)、第 2 刷をお持ちの場合は[こちら](errata2.md)ご覧ください。お手持ちの本がどれに該当するかは、最後の奥付けのページに記載されています。
9+
- 正誤表の内容は随時アップデートされます。
10+
- 記述しているページ番号は、紙の第 3 刷に対応していますが、電子版では内容の更新によりお持ちのバージョンによって前後することがあります。
11+
- 電子版については随時、修正やアップデートが反映された新しいバージョンが配信されます。購入先のサイトをご確認ください。なお現時点での最新版は以下の通りです。
12+
- 【Ⅰ. 言語・環境編】バージョン 3.0.1(2021-09-10)
13+
- 【Ⅱ. React 基礎編】バージョン 2.1.1(2021-04-18)
14+
- 【Ⅲ. React 応用編】バージョン 2.0.2(2021-04-18)
15+
16+
### 電子版のバージョニングについて
17+
18+
- **整数の位** …… 紙の本の「刷」番号に対応しています。「電子版バージョン 2.0.0」であれば、紙の本の「第 2 刷」の内容と完全に一致します
19+
- **小数点第 1 位** …… メジャーバージョン番号。各技術のアップデートや情勢の変化に合わせて内容が更新されたときに変更されます
20+
- **小数点第 2 位** …… マイナーバージョン番号。誤植の修正があったときに変更されます
21+
22+
<br />
23+
24+
## 【Ⅰ. 言語・環境編】
25+
26+
- 2-3 / p.63
27+
28+
```diff
29+
・配列リテラル
30+
…… [1, 2, 3] の形式で記述する。[] は空の配列を示す。arr[n] という構文で
31+
- n-1 番め
32+
+ n+1 番め
33+
の要素にアクセスできる。
34+
```
35+
36+
<br />
37+
38+
## 【Ⅱ. React 基礎編】
39+
40+
現在のところ、修正・更新部分はありません。
41+
42+
<br />
43+
44+
## 【Ⅲ. React 応用編】
45+
46+
現在のところ、修正・更新部分はありません。

0 commit comments

Comments
 (0)
Please sign in to comment.