回答編集履歴
3
IE11回りの表現を調整
answer
CHANGED
@@ -30,15 +30,15 @@
|
|
30
30
|
> また最近はTypeScriptが流行っていますが、これはIE11以下もターゲットにしているためにTypeScriptをみんな使っているのですか?
|
31
31
|
|
32
32
|
NO
|
33
|
+
ES6の書き方をしたいだけのWebエンジニアは昔からBableを使ってES5にトランスパイルしてた。
|
34
|
+
だから本質的な所で言えば違うわけだね。
|
33
35
|
|
34
|
-
Babel等のツールを併用してES5相当までコードのレベルを落とせるってのは、
|
35
|
-
|
36
|
+
対するTypeScriptはメイン機能は型安全を意識した大規模開発。
|
37
|
+
それだけじゃ理由が薄いからいち早くES6の機能を取り入れてBetterJSの地位も築いたんだ。
|
38
|
+
でも当時は動作しないブラウザも多かったのでES5にトランスパイルするから安全に書けるという所を主張にしたわけだね。
|
36
39
|
|
37
|
-
TypeScriptは昔からES6の機能をどんどん取り入れたから、
|
38
|
-
「おまえあまりに取り入れるのが早すぎて最先端のFireFoxやChromeでも対応してねーじゃねーかどうすんだよ」
|
39
|
-
…って話になって、じゃあES5相当のコードにレベルを落とそうかという必要性が生まれて対応しただけに過ぎない。
|
40
|
-
|
41
40
|
何故TypeScript流行っていったのか箇条書きにしてみたよ。
|
41
|
+
こうすることでWebエンジニア達が何に惹かれてTypeScriptにやってきたのかが分かるね。
|
42
42
|
|
43
43
|
1. SPAの流行: AngularJS等のJSフレームワークの台頭
|
44
44
|
2. JSの領域拡大: PHPやRubyがやってた領域をJSが受け持つことに
|
2
TypeScript周りの回答調整
answer
CHANGED
@@ -30,8 +30,16 @@
|
|
30
30
|
> また最近はTypeScriptが流行っていますが、これはIE11以下もターゲットにしているためにTypeScriptをみんな使っているのですか?
|
31
31
|
|
32
32
|
NO
|
33
|
-
TypeScriptはこのようなフローを辿って流行っている
|
34
33
|
|
34
|
+
Babel等のツールを併用してES5相当までコードのレベルを落とせるってのは、
|
35
|
+
素のJSでも出来るし、JSに変換される全てのAltJSに共通する話。
|
36
|
+
|
37
|
+
TypeScriptは昔からES6の機能をどんどん取り入れたから、
|
38
|
+
「おまえあまりに取り入れるのが早すぎて最先端のFireFoxやChromeでも対応してねーじゃねーかどうすんだよ」
|
39
|
+
…って話になって、じゃあES5相当のコードにレベルを落とそうかという必要性が生まれて対応しただけに過ぎない。
|
40
|
+
|
41
|
+
何故TypeScript流行っていったのか箇条書きにしてみたよ。
|
42
|
+
|
35
43
|
1. SPAの流行: AngularJS等のJSフレームワークの台頭
|
36
44
|
2. JSの領域拡大: PHPやRubyがやってた領域をJSが受け持つことに
|
37
45
|
3. JSの大規模開発化: つまりJSのコード量が増えるわけだよね
|
@@ -41,10 +49,7 @@
|
|
41
49
|
|
42
50
|
> 私のようにIE11を対応しないと決めていたらTypeScriptでなくてもよいのでしょうか?
|
43
51
|
|
44
|
-
Babel等のツールを併用してES5相当までコードのレベルを落とせるってのは、
|
45
|
-
|
52
|
+
これは前提条件が誤りだから微妙な質問になってる気がするけど、
|
46
|
-
あくまでTypeScriptを使う人間が多いのは、前述の通り大規模開発時の型の安全性に着目しているから。
|
47
|
-
|
48
53
|
例えばIE11でも対応しているSPA用のJSフレームワークは多く存在していて、
|
49
54
|
大規模なSPAを構築するためにTypeScriptを採用しているような事例もあるね。
|
50
55
|
|
1
文章の校正
answer
CHANGED
@@ -1,15 +1,10 @@
|
|
1
|
-
移行出来るか出来ないかの判断は各自でしよう!
|
2
1
|
「ES2015(以下ES6と表記)で書きたい?ほぼ対応しているから大丈夫でしょ〜」
|
3
2
|
…という楽観的な回答を拾ってプロジェクトが大ハマリしても誰も責任とれないよ。
|
4
3
|
|
5
4
|
参考URL: [ECMAScript 6 compatibility table](http://kangax.github.io/compat-table/es6/)
|
6
5
|
|
7
|
-
どの程度ES6を駆使するかにもよるけれど、
|
8
|
-
`let`や`const`使いたいってだけの話ならIE11でも対応してるからね。
|
9
|
-
|
10
6
|
責任は取れない上で見解を述べるなら、
|
11
|
-
IE以外はほぼ全ての書き方が採用出来るからハマりポイントは殆どない。
|
12
|
-
一部Edge等が弱い箇所を気をつければ十分移行して
|
7
|
+
ハマりポイントは殆どなくて、一部Edge等が弱い箇所を気をつければ十分移行して良いレベルだと思う。
|
13
8
|
|
14
9
|
---
|
15
10
|
|
@@ -19,9 +14,9 @@
|
|
19
14
|
|
20
15
|
> jQuery用プラグインなど、ES6で書かれていなくてもES6やES5などの混在は可能なのでしょうか?
|
21
16
|
|
22
|
-
|
17
|
+
ES5とES6の混在は可能。
|
23
18
|
そもそもES6はES5から予約語や関数が増えた程度で、元々の言語仕様から全くといっていいほど変化してないよ。
|
24
|
-
自分が
|
19
|
+
自分が使いたいと感じた分だけES6の機能を使えばいい。
|
25
20
|
|
26
21
|
こんな風にバリバリのES6的な書き方をしつつ、ES5のライブラリのjQueryを操る事も可能。
|
27
22
|
|
@@ -37,24 +32,24 @@
|
|
37
32
|
NO
|
38
33
|
TypeScriptはこのようなフローを辿って流行っている
|
39
34
|
|
40
|
-
1. AngularJS等のJSフレームワークの台頭
|
35
|
+
1. SPAの流行: AngularJS等のJSフレームワークの台頭
|
41
|
-
2.
|
36
|
+
2. JSの領域拡大: PHPやRubyがやってた領域をJSが受け持つことに
|
42
|
-
3.
|
37
|
+
3. JSの大規模開発化: つまりJSのコード量が増えるわけだよね
|
43
|
-
4. 大規模開発するなら型の安全性欲しい
|
38
|
+
4. TSに注目が集まる: 大規模開発するなら型の安全性欲しい、MSが公式採用しているTypeScriptがある
|
44
|
-
5. MS社が全力サポートしてるTypeScriptが使い勝手良いらしい
|
45
|
-
|
39
|
+
5. 有名ライブラリがTSを採用: Angular4やReact.jsがTypeScript推奨している
|
46
|
-
7.
|
40
|
+
7. 対応IDEやエディタが増えた: デフォルトでVisualStudioやVS Code対応しているし便利
|
47
41
|
|
48
42
|
> 私のようにIE11を対応しないと決めていたらTypeScriptでなくてもよいのでしょうか?
|
49
43
|
|
50
|
-
Babel等のツールを併用してES5相当までコードのレベル
|
44
|
+
Babel等のツールを併用してES5相当までコードのレベルを落とせるってのは、
|
51
|
-
素のJSでも出来るし、
|
45
|
+
素のJSでも出来るし、JSに変換される全てのAltJSに共通する話。
|
52
|
-
あくまでTypeScriptを使う人間が多いのは、大規模開発時の型の安全性に着目しているから。
|
46
|
+
あくまでTypeScriptを使う人間が多いのは、前述の通り大規模開発時の型の安全性に着目しているから。
|
53
47
|
|
54
|
-
例えばIE11でも対応しているSPA用のJSフレームワークは多く存在してい
|
48
|
+
例えばIE11でも対応しているSPA用のJSフレームワークは多く存在していて、
|
55
|
-
大規模なSPAを構築するためにTypeScriptを採用しているような事例もある。
|
49
|
+
大規模なSPAを構築するためにTypeScriptを採用しているような事例もあるね。
|
56
50
|
|
57
|
-
jQueryと対応プラグインで事足りているなら大規模ってわけでもないし不要
|
51
|
+
jQueryと対応プラグインで事足りているなら大規模ってわけでもないし不要じゃないかな?
|
52
|
+
|
58
53
|
でもまぁ、JSファイルを分割して作っておいて、
|
59
|
-
WebpackやBrowserifyを
|
54
|
+
WebpackやBrowserifyを利用して、関数等の単位で区切ったJSファイルを結合して1つにまとめるってテクニックは小規模開発でも有効だから、
|
60
|
-
そのついでにBabelで変換掛けたり、TypeScriptのような流行ってるAltJSを採用するのもありだと思う
|
55
|
+
そのついでにBabelで変換掛けたり、TypeScriptのような流行ってるAltJSを採用するのもありだと思うよ。
|