Skip to content

Commit ad0948a

Browse files
committed
その他のクラスの追加。テーマ変更
1 parent ecd0ff2 commit ad0948a

File tree

120 files changed

+14516
-3098
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

120 files changed

+14516
-3098
lines changed

.vscode/extensions.json

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{
2+
// See https://go.microsoft.com/fwlink/?LinkId=827846 to learn about workspace recommendations.
3+
// Extension identifier format: ${publisher}.${name}. Example: vscode.csharp
4+
5+
// List of extensions which should be recommended for users of this workspace.
6+
"recommendations": [
7+
"editorconfig.editorconfig",
8+
"dbaeumer.vscode-eslint",
9+
"streetsidesoftware.code-spell-checker"
10+
],
11+
// List of extensions recommended by VS Code that should not be recommended for users of this workspace.
12+
"unwantedRecommendations": [
13+
14+
]
15+
}

conf.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -15,19 +15,19 @@
1515
# import os
1616
# import sys
1717
# sys.path.insert(0, os.path.abspath('.'))
18-
18+
import sphinx_rtd_theme
1919

2020
# -- Project information -----------------------------------------------------
2121

2222
project = '仕事ですぐに使えるTypeScript'
23-
copyright = '2019, Future Corporation'
23+
copyright = '2019-2020, Future Corporation'
2424
author = 'Future Corporation'
2525

2626
import os
2727
import sys
2828

2929
sys.path.insert(0, os.path.abspath('ext'))
30-
extensions = [ 'pageinfo', 'sphinx.ext.todo', 'sphinx.ext.githubpages' ]
30+
extensions = [ 'pageinfo', 'sphinx.ext.todo', 'sphinx.ext.githubpages', 'sphinx_rtd_theme' ]
3131
# The short X.Y version
3232
version = ''
3333
# The full version, including alpha/beta/rc tags
@@ -78,7 +78,7 @@
7878
# The theme to use for HTML and HTML Help pages. See the documentation for
7979
# a list of builtin themes.
8080
#
81-
html_theme = 'alabaster'
81+
html_theme = 'sphinx_rtd_theme'
8282

8383
# Theme options are theme-specific and customize the look and feel of a theme
8484
# further. For a list of options available for each theme, see the

docs/.buildinfo

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
# Sphinx build info version 1
22
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
3-
config: e2e8d675c98311c546b369623bda2fda
3+
config: 6bd1f51aa47eab538528b72d4f0019d8
44
tags: 645f666f9bcd5a90fca523b33c5a78b7
346 KB
Loading

docs/_sources/baseenv.rst.txt

+33-5
Original file line numberDiff line numberDiff line change
@@ -143,9 +143,28 @@ ESLintを起動するタスクを ``package.json`` に追加しましょう。
143143
.. code-block:: json
144144
:caption: package.json
145145
146-
"scripts": {
147-
"lint": "eslint .",
148-
"fix": "eslint --fix ."
146+
{
147+
"scripts": {
148+
"lint": "eslint .",
149+
"fix": "eslint --fix ."
150+
}
151+
}
152+
153+
Reactを使っていると、JSX内部でコンポーネントを利用していても、未使用変数として扱われてしまうことがあります。その場合は\ ``eslint-plugin-react``\ も追加でインストールして設定を追加しましょう。Reactの場合、返り値の型を明示的に指定しないと警告が出るモードはあまりうれしくないので、この警告は出ないようにしましょう。
154+
155+
.. code-block:: json
156+
:caption: .eslintrc
157+
158+
{
159+
"plugins": [
160+
"react"
161+
],
162+
"extends": [
163+
"plugin:react/recommended"
164+
],
165+
"rules": {
166+
"@typescript-eslint/explicit-module-boundary-types": 0
167+
}
149168
}
150169
151170
テスト
@@ -187,18 +206,25 @@ scripts/testと、jestの設定を追加します。古い資料だと、transfo
187206
Visual Studio Codeの設定
188207
--------------------------------
189208

190-
Visual Stuido Codeでフォルダを開いたときに、eslintの拡張と、editorconfigの拡張がインストールされるようにします。
209+
Visual Studio Codeでフォルダを開いたときに、eslintの拡張と、editorconfigの拡張がインストールされるようにします\ ``.vscode``\ フォルダにファイルを作ることで、プロジェクトのソースコードと一緒に、プロジェクトの共有設定を共有できます。同じ拡張機能を入れてもらって、コードチェックなどのクオリティを統一し、コードインテグレーション時に無駄な調整をしなくて済むようにできます。ここではついでにコードのスペルチェックの拡張機能も入れておきます
191210

192211
.. code-block:: json
193212
:caption: .vscode/extensions.json
194213
195214
{
196215
"recommendations": [
197216
"dbaeumer.vscode-eslint",
198-
"EditorConfig.editorconfig"
217+
"EditorConfig.editorconfig",
218+
"streetsidesoftware.code-spell-checker"
199219
]
200220
}
201221
222+
この設定はこのJSONを書いても良いですし、拡張機能のページで該当する拡張機能を開いてから、コードパレットで\ ``Extensions: Add to Recommended Extensions (Workspace Folder)``\ を選択すると追加されます。
223+
224+
.. figure:: images/add-to-recommendation.png
225+
226+
拡張機能をプロジェクト推奨に設定
227+
202228
ファイル保存時にeslint --fixが自動実行されるように設定しておきましょう。これでVisual Studio Codeを使う限り、誰がプロジェクトを開いてもコードスタイルが保たれます。Visual Studio Codeのeditor.codeActionsOnSaveは、files.autoSaveがafterDelayのときは効かないので、offに設定しておきます。
203229

204230
.. code-block:: json
@@ -211,6 +237,8 @@ Visual Stuido Codeでフォルダを開いたときに、eslintの拡張と、ed
211237
"files.autoSave": "off"
212238
}
213239
240+
ファイルを保存してみて修正されるか試してみましょう。もしされない場合は一度コマンドラインから実行してみてください。拡張で設定されているパッケージが足りない場合などはエラーが発生します。
241+
214242
.. todo:: tsdocとかドキュメントツールを紹介
215243

216244
.. todo:: eslintやテストの書き方の紹介

docs/_sources/class.rst.txt

+17-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,23 @@
11
クラス
22
================
33

4-
昔は関数と\ ``prototype``\ という属性をいじくり回してクラスを表現していました。正確には処理系的にはクラスではないのですが、コードのユーザー視点では他の言語のクラスと同等なのでクラスとしてしまいます。
5-
なお、Javaなどのような書き味を求めて、この仕組みをラップした自前の\ ``extends``\ 関数みたいなのを作ってクラスっぽいことを表現しようという一派も一時期いましたが、今のJavaScriptとTypeScriptでは、より良い書き方が提供されています。
4+
JavaScriptとJava風オブジェクト指向文法の歴史
5+
--------------------------------------------------------
6+
7+
クラスはプログラミング言語によってはとても重要な位置付けにあります。たとえば、Javaはすべての要素がクラスに属し、そのクラスの組み合わせでプログラムを作成していきます。クラスの利用方法を学び、クラスの実装方法を学び、よりよいクラスの設計方法を知ることがJavaにおいてはとても重要です。また、20年ほど前はJavaはプログラミングのパラダイムにおいては最先端であり、クラスを元にした設計手法、デザインパターン、アジャイルソフトウェア開発のプログラミング系のプラクティス(テスト駆動開発やリファクタリング)を通じて、多くのプログラミング言語にJava流の設計が輸出されていきました。クラスを使いこなすことで、次のことが実現可能になるとさかんに喧伝されていました。
8+
9+
* 大規模なコード
10+
* 再利用性の高いコード
11+
12+
例えばPythonやRubyなどの今は古参扱いのプログラミング言語の多くも、当時は機能拡張を積極的に行っておりJavaやその周辺のベストプラクティスに影響を受けたと思われるライブラリなどがいくつか組み込まれています。クラスを持ってその先端の設計技法が利用できることは、当時の一級言語のステータスでした。
13+
14+
JavaScriptはクラスをダイレクトに表現する文法はなかったものの、昔は関数と\ ``prototype``\ という属性をいじくり回してクラスを表現していました。正確には処理系的にはクラスではないのですが、コードのユーザー視点では他の言語のクラスと同等なのでここではこの当時の記法で作るものもクラスとして扱います。とはいえ、それでもJavaScriptはクラスがないことを理由に「大規模開発に向かないおもちゃ言語」と言われることもありました。
15+
16+
その欠点をカバーしてJavaなどのような書き味を求めて、ひと昔前のJavaScript界隈では、この\ ``prototype``\ の仕組みをラップした自前の\ ``extends``\ 関数みたいなのを作ってクラスっぽいことを表現しようという一派も一時期いました。また、5年ほど前までは、クラスを使うためにCoffeeScriptに救いを求める人も多数いました。今のJavaScriptとTypeScriptでは、言語の標準機能として良い書き方が提供されています。
17+
18+
クラスをようやくサポートしたものの、近年ではクラスを使わない書き方、関数型言語のエッセンスを取り入れた書き方も流行ってきています。大規模といえばオブジェクト指向でクラス、という短絡的な言い方をする人はもはや絶滅危惧種です。
19+
20+
しかし、大規模なアプリケーションの部品としてではなく、末端の部品としては便利です。みなさんも、文字列や配列などの組み込み型を通じて、自然とオブジェクト指向には触れています。あのような部品を自分で作るための手段です。関数型のスタイルとも組み合わせて利用できますし、書き方を学んでおきましょう。
621

722
用語の整理
823
---------------------

docs/_sources/complex.rst.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -469,7 +469,7 @@ ES2020で追加された機能として、オプショナルチェイニング
469469

470470
この場合、深い階層にアクセスする場合は、一つずつ、\ ``null``\ \ ``undefined``\ になりえるところでチェックを行っていました。\ ``&&``\ 演算子が、一つでも途中にfalseyな値があると評価を止める、そうでなければ最後の値を返すという挙動を持っているため、それを活用したコーディングが行われていました。
471471

472-
オプショナルチェイニングは同じことを実現する演算子として\ ``.?``\ が導入されました。途中でnullish(\ ``null``\ \ ``undefined``\ )な値があると、式全体の評価結果が\ ``undefined``\ になります。
472+
オプショナルチェイニングは同じことを実現する演算子として\ ``?.``\ が導入されました。途中でnullish(\ ``null``\ \ ``undefined``\ )な値があると、式全体の評価結果が\ ``undefined``\ になります。
473473

474474
.. code-block:: ts
475475

docs/_sources/index.rst.txt

+1
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
syntax
3636
typing
3737
function
38+
otherbuiltinobjects
3839
class
3940
async
4041
exception

0 commit comments

Comments
 (0)