2016幎ãéçã«åä»ããããJavaScriptãéåžžã«äººæ°ãããããšãå€æããŸããã å€ãã®äŒæ¥ã¯ãããããŸãã¯ãã®ä»ã®æ段ãå©çšããŠãJSã®åçãªæ§è³ªã®æ¬ ç¹ãæé€ããŸããã ãŸããç§ãã¡ã®èšèšã§éçåä»ãã®å·šå€§ãªå¯èœæ§ãå©çšããèŠéãã«é
äºãããŸããã
ããŒã«ãéžæããŠã以åã«TypeScriptãšFlowã«æ±ºããŸããã ãããã®ãããžã§ã¯ãã¯ç°ãªããŸãããåãåé¡ã解決ããããšãç®çãšããŠããŸãã ã€ãŸããããŒã¿åãå¶åŸ¡ã§ããããã«ããããšã§ãçŽç²ãªJSãã³ãŒãç·šæããªãã¡ã¯ã¿ãªã³ã°æ©èœã®åäžãããã°ã©ããŒã®è¿
éãã€ç¢ºå®ãªäœæ¥ã«æ¯ã¹ãŠãããé«åºŠãªæ©èœãæäŸããŸãã
Coherent Labsããã³TypeScript
ç§ãåãçµãã§ãããããžã§ã¯ãã¯ãäž»ã«JavaScriptã§èšè¿°ãããHTMLã²ãŒã çšã®
ããžã¥ã¢ã«ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹
ãšãã£ã¿ãŒã§ãã³ãŒãã10äžè¡ãè¶
ããŸããã ãšãã£ã¿ãŒã«ã¯å€ãã®æ©èœãæèŒãããŠããããããã®ã³ãŒãããŒã¹ã®ä¿å®ãšãªãã¡ã¯ã¿ãªã³ã°ãããå°é£ã«ãªã£ãŠããŸãã ããããç§ãã¡ãããã€ãã®ç 究ãè¡ããçŽé¢ããŠããåé¡ã®è§£æ±ºçãèŠã€ããããšã«ããçç±ã§ãã
ãã°ããããŠãTypeScriptãšFlowã®2ã€ã®ãªãã·ã§ã³ã«å°éããŸããã ã©ã¡ããã³ãŒãå¶åŸ¡ãæ¹åããããã«éçåãæäŸããããšãçŽæããŸããããããã ãã§ã¯ååã§ã¯ãããŸããã§ããã ES6ãšèšèªã®å°æ¥ã®ããŒãžã§ã³ã®ãã«ãã¯ãŒã䜿çšãããã£ãã®ã§ãã å®éããããŒã¯éçã³ãŒãã¢ãã©ã€ã¶ãŒã§ããã€ãŸãããã¹ãŠã®ES6ã³ãŒãã«ãã©ã³ã¹ãã€ã©ãŒã䜿çšããå¿
èŠããããŸãããJavaScriptã®ã¢ããªã³ã§ããTypeScriptã䜿çšãããšãéçã¿ã€ããšææ°ã®ECMAScriptæ©èœã®ã»ãšãã©ã®ãµããŒãã®äž¡æ¹ãåŸãããŸãã
äžèšãèæ
®ãããšãæçµæ±ºå®ãäžãããšã¯é£ãããããŸããã§ããã TypeScriptã«æ±ºããŸããã
éçã«åä»ããããJavaScriptã®äººæ°ã«ã€ããŠ
å°ãè±ç·ããŠãéçåä»ããšã¯äœãããããŠJavaScriptã®åçãªäžçã§ã©ã®ããã«äœçœ®ä»ããããã®ãã«ã€ããŠè©±ããŸãããã
éçåä»ãèšèªãšåçåä»ãèšèªã®äž»ãªéãã¯ãããŒã¿åã®æ€èšŒæ¹æ³ã§ãã åè
ã¯ã³ã³ãã€ã«äžã«ãããè¡ããåŸè
ã¯ããã°ã©ã å®è¡äžã«è¡ããŸãã èšãæããã°ãéçã«åä»ããããèšèªã§ã¯ãããã°ã©ããŒã䜿çšããåã«ããŒã¿åã宣èšããå¿
èŠããããŸãããåçã«åä»ããããèšèªã§ã¯ããã¯å¿
èŠãããŸããã
JavaScriptã¯åçã«åä»ããããèšèªã§ãããããããŸããŸãªæäœã§ããŸããŸãªã¿ã€ãã®ããŒã¿ã䜿çšã§ããŸãã JavaãC ++ãªã©ã®éçã«åä»ããããèšèªããJSã«ã¢ã¯ã»ã¹ããéçºè
ã«ãšã£ãŠãããã¯ã»ãšãã©ã®å Žåãå®å
šã«éè«ççã§ãããå¥åŠã«ããèŠããŸãã ããã¯ã倧èŠæš¡ãããžã§ã¯ãã§æ·±å»ãªåé¡ã«ã€ãªãããŸãã ããšãã°ãããã°ã©ããŒã¯ãç¹å®ã®å€æ°ãNaNã§ããããšãå€æããçç±ãææ¡ããã ãã§å€ãã®æéãè²»ããå¿
èŠããããããããŸããã
TypeScriptãšFlowã¯ããã®ãããªåé¡ã解決ããããã«äœæãããŸããã éå»2幎éã§äººæ°ãåããã¿ã€ããã§ãã¯ã®ã¿ã«çŠç¹ãåœãŠããµããŒããããŒã¯ãFacebookã«åŸäºããŠããŸãã äžæ¹ãMicrosoftãæãããTypeScriptã¯ãJavaScriptã¢ããªã³ã§ãã ã€ãŸããåãã§ãã¯ããµããŒãããã ãã§ãªããES6ããã³ES7ã®å°æ¥ã®æ©èœã䜿çšããããšãã§ããŸãã ã©ã¡ãã«ããã³ãŒããçŽç²ãªJavaScriptã«å€æããã³ã³ãã€ã©ãŒããããä»»æã®ãã©ãŠã¶ãŒã§å®è¡ã§ããŸãã
åä»ãJavaScriptã䜿çšããå©ç¹ã®äžéšã次ã«ç€ºããŸãã
- ã³ãŒãã®å¯èªæ§ãåäžããŸãã
- ãšã©ãŒã®æ©æçºèŠã«è²¢ç®ããŸãã
- ããä¿¡é Œæ§ã®é«ããªãã¡ã¯ã¿ãªã³ã°ã®æ©äŒãæäŸããŸãã
- IDEã¬ãã«ã§ã®èšèªãµããŒããåäžããŸãã
åä»ãJavaScriptã䜿çšãããããžã§ã¯ãã®éçºã®å¯èœæ§ã決å®ããéã«ã¯ã次ã®è³ªåãèªåããŠãã ããã
- ããªãã®ããžãã¹ã«ãšã£ãŠãããžã§ã¯ãã¯éèŠã§ããïŒ
- ãããžã§ã¯ãã¯å€ãã®è€éãªéšåã§æ§æãããŠããŸããïŒ
- ããŒãºã«åãããŠãããžã§ã¯ãããªãã¡ã¯ã¿ãªã³ã°ããäºå®ã¯ãããŸããïŒ
- éçºè
ãã³ãŒãããŒã¹ã®ç 究ãšãããã«é¢ããç¬èªã®ç¥èãææ°ã®ç¶æ
ã«ç¶æããããã«è²»ããæéãæå°éã«æããå¿
èŠããã倧èŠæš¡ãªããŒã ããããŸããïŒ
ãããã®è³ªåã«å¯Ÿããåçã®ã»ãšãã©ãè¯å®çãªå Žåããããžã§ã¯ããTypeScriptãŸãã¯Flowã«ç§»è¡ããããšãæ€èšããå¿
èŠããããŸãã
ã¿ã€ã¿ã³ã®æ°žé ã®è¡çªïŒTypeScriptãšãããŒ
æ¢ã«è¿°ã¹ãããã«ãFlowãšTypeScriptã¯ã©ã¡ããJSéçºè
ã«éåžžã«éèŠãªããããŠç§ã®æèŠã§ã¯éåžžã«å¿
èŠãªæ©èœã§ããåã·ã¹ãã ãæäŸããŸãã
TypeScriptã¯ãAnders Halesbergãæåã®ãªãªãŒã¹ããªãªãŒã¹ãããšãã«ãMicrosoftã®æ¯æŽãåããŠ2012幎ã«ç»å ŽããŸããã ãšãããããªãã·ã§ã³ã®ã¿ã€ã泚éãšES6ããã³ES7ã®æ©èœããµããŒãããŠããŸãã 圌ã¯æ³šéãåŠçãããã¬ãŒã³ãªJavaScriptã§ã³ãŒããçæããã³ã³ãã€ã©ãŒãæã£ãŠããŸãã
Flowã¯ãFacebookãè¡ãéçã³ãŒãã¢ãã©ã€ã¶ãŒã§ãã JavaScriptã¢ããªã±ãŒã·ã§ã³ã®ãšã©ãŒããã°ããèŠã€ããããã«èšèšãããŠããŸãã ããã¯ã³ã³ãã€ã©ã§ã¯ãªããã¢ãã©ã€ã¶ã§ãã å泚éããŸã£ãããªããŠãæ©èœããå€æ°åãå°åºããã¿ã¹ã¯ã§å®å
šã«è¡šç€ºãããŸãã
ç°¡åãªäŸãèŠãŠã¿ãŸãããã 次ã®é¢æ°ããããååãååŸãããšæšæ¶ãè¿ãããŸãã
function greet = function(name) { return `Hello, ${name}!`; }
TypeScriptãšFlowã®äž¡æ¹ã§ããã®é¢æ°ã¯æ¬¡ã®ããã«ãªããŸãã
function greet(name: string): string { return `Hello, ${name}!`; }
é¢æ°ãã©ã¡ãŒã¿ãŒã®åŸã®ãæååãã¯ãTypeScriptããã³Flowã§ã¿ã€ããèšå®ããæ¹æ³ã§ãã ã¿ã€ãã¯åçŽãŸãã¯è€åã®ããããã§ãã ããã¯ãæå®ããããã®ãšã¯ç°ãªãã¿ã€ãã®åŒæ°ã䜿çšããããšãããšããšã©ãŒã¡ãã»ãŒãžãçæãããããšãæå³ããŸãã é¢æ°ã®äœ¿çšäŸãèããŠã¿ãŸãããã
const message = greet(43);
åŒæ°ãšããŠæ°å€ãæž¡ãããšã«ãããé¢æ°ãåŒã³åºããŸããã ã³ãŒããã³ã³ãã€ã«ãããšãTypeScriptã¯ãšã©ãŒãçºçããããšã瀺ãã¡ãã»ãŒãžã衚瀺ããŸãã
Argument of type 'number' is not assignable to parameter of type 'string.'
ã³ã³ãã€ã«äžã«ãã®ãããªãšã©ãŒããã£ãããããšãçç£æ§ãéçºè
ã®æ°åã«éåžžã«è¯ã圱é¿ãäžããå¯èœæ§ããããŸãã TypeScriptã¯ãç¢å°é¢æ°ãã€ã³ããŒããšãšã¯ã¹ããŒãããžã§ãã¬ãŒã¿ãŒãéåæ/åŸ
æ©ã¡ã«ããºã ãã¯ã©ã¹ãªã©ã®é«åºŠãªJSæ©èœããµããŒãããŠããŸãã æçµçã«ãTypeScriptã¯JavaScriptã¢ããªã±ãŒã·ã§ã³éçºã®åªãããšã³ã·ã¹ãã ãæ§ç¯ããããšãå¯èœã«ããŸãã
ããã§ã¯ã20äžè¡ãè¶
ããã³ãŒããå«ããããžã§ã¯ããTypeScriptã«ã©ã®ããã«å€æãããã«ã€ããŠã話ãããŸãããã
ã¹ããã1-ãã¯ãããžãŒã®éžæ
ç§ãã¡ã®ãããžã§ã¯ãã¯æ¥éã«çºå±ããŠãããæéã®çµéãšãšãã«ã³ãŒãããŒã¹ã®éã¯ã»ãŒææ°é¢æ°çã«å¢å ããŸããã åœæãTypeScriptãšéçã«åä»ããããJavaScriptã®äººæ°ãé«ãŸããŸããã ãã®ãã¹ãŠã«ãããŠãç§ãã¡ã¯éããŠã¯ãªããªãæ©äŒãèŠãŸããã ããã€ãã®èª¿æ»ãšæ°åã®äŒè°ã®åŸã2ã€ã®å¯èœãªæ
è¡ã«èœã¡çããŸããã
- FlowãšBabelã䜿çšããŠES6ããã©ã³ã¹ãã€ã«ããŸãã
- ES6 / ES7ã®ã³ã³ãã€ã«ã«ã¯ãTypeScriptãšãã®ã³ã³ãã€ã©ãŒã䜿çšããŸãã
ããã€ãã®çç±ã§TypeScriptãéžæããŸããã
- åœæãTypeScriptã«ã¯ããåºãã³ãã¥ããã£ããããããå€ãã®è³æããããŸããã
- ã¢ããªã±ãŒã·ã§ã³ã®æ§ç¯ããã»ã¹ãè€éã«ãããã¯ãããŸããã§ããããããã¯ãã§ã«éåžžã«å°é£ã§ããã Flowã®äœ¿çšæã«ããã«2ã€ã®ã¹ããããè¿œå ãããšïŒFlowã®ã³ã³ãã€ã«ãšBabelã®ãã©ã³ã¹ã³ã³ãã€ã«ïŒãåŠçãããã«é
ããªããŸãã TypeScriptã䜿çšãããšãè¿œå ã®ã¢ã»ã³ããªæé ã1ã€è¿œå ããã ãã§ååã«å¯Ÿå¿ã§ããããã«ãªããŸããã
- TypeScriptã¯çµ±åéçºç°å¢ããããããµããŒãããŸãã ç§ãã¡ã®ããŒã å
šäœãWebStormã䜿çšããŠããŸããããã¯ãåªããTypeScriptãµããŒããæäŸããŸãã
- ES5ãµããŒãã ç§ãã¡ã®ã·ã¹ãã ã®äžæ žã¯WebKitãšJavaScriptCoreäžã«æ§ç¯ãããŠãããç¹å®ã®å¶éããããŸãã ES5ã®æšæºæ©èœã®äžéšã¯ãµããŒããããŠããŸããã ãã®çµæãTypeScriptã®æ©èœã¯ãæçµæ±ºå®ãäžãäžã§äž»èŠãªåœ¹å²ãæãããŸããã
6ãæã®äœæ¥ã®åŸãTypeScriptãéžæããããšãæ£ãã決å®ã§ãã£ããšæ£çŽã«èšãããšãã§ããŸãã ãããžã§ã¯ãã移åããããã»ã¹ã®ãã¹ãŠãã¹ã ãŒãºã«è¡ãããããã§ã¯ãããŸããããããŸãè€éãªããšã¯ãããŸããã§ããã
ã¹ããã2-å§ãŸã
ããŒã å
šäœãåå ãã移è¡ããã»ã¹ã®é·ãè°è«ã®åŸãå°ããªã¢ãžã¥ãŒã«ããå§ããŠæžãçŽãããšã«ããŸããã æåã¯ã.jsãã¡ã€ã«æ¡åŒµåã.tsã«çœ®ãæããããšã§ãã
次ã«ã
grunt-tsã䜿çšããŠã¢ã»ã³ããªããŒã«ïŒGruntïŒãã»ããã¢ããããçŽ1æ¥ååŸã«ãæåã®TypeScriptã¢ãžã¥ãŒã«ã®æºåãæŽããŸããã ãã®ãšãã®äž»ãªé£ç¹ã¯ãã°ããŒãã«ã¢ãžã¥ãŒã«ãšå€éšã¢ãžã¥ãŒã«ãæ±ãããšã§ããã TypeScriptã«ã¯å³å¯ãªå
¥åèŠåããããŸãã ãã®çµæãTypeScriptã³ã³ãã€ã©ã¯ãjQueryãKendo UIãªã©ã®è£å©ã©ã€ãã©ãªãšãã®ã¡ãœãããèªèããŸããã ããã«ããããã«200以äžã®ã³ã³ãã€ã«ãšã©ãŒãçºçããTypeScriptã$åã®å€æ°ãèŠã€ããããªãã£ãããšã瀺ããŠããŸãã 解決çã¯éåžžã«ç°¡åã§ããã
declare
åœä»€ã䜿çšããŸããã
declare var $; declare var kendo; ...
declare
ããŒã¯ãŒãã¯ããããããµã©ãŠã³ãåºåãäœæããããã«äœ¿çšãããŸãã ãããã¯ãTypeScriptã«ãTSãã¡ã€ã«ã§ã¯ãªãããŒã¿åã«é¢ããä»ã®ã©ã€ãã©ãªã«é¢ããæ
å ±ãæäŸããããã«äœ¿çšãããŸãã ãã®ç¶æ³ã§ã¯ãããã¯å®å
šã«åãå
¥ãããããœãªã¥ãŒã·ã§ã³ã§ããããšãå€æããŸããã
ãã®æ®µéã§ãæåã®ã¢ãžã¥ãŒã«ãTypeScriptã«æ£åžžã«è»¢éãããããžã§ã¯ãå
šäœãTypeScriptã«å€æããæºåãæŽããŸããã
ã¹ããã3-移è¡
次ã®ã¹ãããã¯ãä»ã®ãã¹ãŠã®ã¢ãžã¥ãŒã«ãTypeScriptã«å€æããããšã§ããã ãããã®ããã€ãã¯é«åºŠã«çžäºæ¥ç¶ãããŠãããããããè¿
éã«æ©èœãããæ¹æ³ãèãåºãå¿
èŠããããŸããã ããã€ãã®è¿œå 調æ»ãšæ°æéã®ãã¬ã€ã³ã¹ããŒãã³ã°ã®åŸãæ¯èŒçåçŽãªæŠç¥ãæãã€ããŸããã
ãŸãããã¹ãŠã®ãã¡ã€ã«ã®ååãå€æŽããŠæ¡åŒµå.tsãä»ãããšãããçªåŠãšããŠã³ã³ãã€ã«ãšã©ãŒãçºçããŸããã 次ã«ãå¿
èŠãªTypeScript宣èšãè¿œå ãã
Any
ããŒã¿åãããã€ãã®å€æ°ã«å²ãåœãŠãŸããã ããã«ãããããŸããŸãªã¿ã€ãã®ããŒã¿ãå€æ°ã«æžã蟌ãããšãã§ããŸãã ãã®ããã«ããŠãæååãæ°å€ãè«çå€ãªã©ãããŸããŸãªã¿ã€ãã®ããŒã¿ãæ ŒçŽã§ããå€æ°ã宣èšãããŸããã
åãšå®£èšãšã®2æ¥éã®éäºã®åŸãæåã®å®å
šãªTypeScriptã³ã³ãã€ã«ã«è³ããŸããã ãããããŸã å€ãã®ä»äºããããŸããã åãã§ãã¯ãæ¹åããå€éšã©ã€ãã©ãªã«é©åãªå®£èšãè¿œå ããES5ã³ãŒããES6æšæºã«æºæ ãããå¿
èŠããããŸããã
ã¢ããŠã³ã¹ã¡ã³ããã¡ã€ã«ã«ã¯ãã©ã€ãã©ãªããã€ã¹ãèšè¿°ãããŠããŸãã ãããã䜿çšãããšïŒ.d.tsãã¡ã€ã«ãšãåŒã°ããŸãïŒãã©ã€ãã©ãªã®èª€çšãåé¿ããã³ãŒããšãã£ã¿ãŒã§ã®ã³ãã³ãè£å®ãªã©ã®å©äŸ¿æ§ãåŸãããšãã§ããŸãã TypeScript 1.8ã䜿çšããå Žåãæ°ãã宣èšãã¡ã€ã«ãè¿œå ããã«ã¯ãåã
ã®npmããã±ãŒãžãã°ããŒãã«ã«ã€ã³ã¹ããŒã«ããç¹å®ã®ã©ã€ãã©ãªã®å®£èšãã¡ã€ã«ãèŠã€ãããã¹ãŠã®ã©ã€ãã©ãªèšè¿°ãã¡ã€ã«ããtypingsããã©ã«ããŒã«ä¿åããå¿
èŠããããŸãã æ£çŽãªãšããããã®æ±ºå®ã¯æããšã¬ã¬ã³ãã§ã¯ãããŸããã§ããã TypeScript 2.0ã«ã¯ãnpmã¬ãžã¹ããªã䜿çšããŠãã©ã€ãã©ãªå®£èšã管çããæ°ããæ¹æ³ããããŸãã ããã¯ãã¹ãŠãããã€ãã®ããŒã ã§çŸåšè¡ãããŠããŸãã æåã®ã€ã³ã¹ããŒã«ã¯æ¬¡ã®ãšããã§ãã
npm install
次ã«ãå¿
èŠãªå Žæã«ã€ã³ããŒãããŸãã
import * as $ from 'jquery'
ãã®çµæããã¡ã€ã«ããã©ã«ãã«é£œã飜ãããããšã¯ãªããªããŸããã
ããã§ãå€éšã©ã€ãã©ãªãèŠã€ããŸããã 次ã®ã¹ãããã¯ã
Any
åã®ãã¹ãŠã®å®£èšãé©åãªããŒã¿åã«å€æŽããããšã§ããã ãã®ã¿ã¹ã¯ã«ã¯æ°æ¥ããããŸããã æ¥ãã§ã³ãŒãã段éçã«å»æ¢ããªãããšã«ããŸããã ç¹ã«ãES6ã®ãªãã¡ã¯ã¿ãªã³ã°ãšã¿ã€ãå€æŽãå®è¡ãããŸããã æ°é±éåŸãã³ãŒãã®80ïŒ
ã段éçã«ES6ã«è»¢éããæå³ã®ããå泚éãä»ããŸããã ãã®æ®µéã§ãäœæ¥ã®æ¬¡ã®æ®µéã§ãããã¹ãã«é²ãããšãã§ããŸããã
ãã¹ããšTypeScript
ç§ãã¡ã®éçºç°å¢ã¯çæ³ã«è¿ãããããžã§ã¯ãã®æ¬¡ã®å€§ããªæ®µéã§ãããšã³ãããŒãšã³ãïŒE2EïŒãã¹ãã®æºåãã§ããŠããŸããã JavaScriptã䜿çšããããšã«ããŸããã ç§ãã¡ã®æŠåšã¯ãMochaãChaiãSeleniumãããã³WebDriver Seleniumã§ãã ãã¹ãã³ãŒãïŒSeleniumãã¬ãŒã ã¯ãŒã¯ããã¹ããããã³ãã¹ãŠã®äŸåé¢ä¿ïŒãåé¢ããåå¥ã®tsconfig.jsonãæäŸããŸããã
ãã£ã¬ã¯ããªã«tsconfig.jsonãã¡ã€ã«ãååšããããšã¯ããã®ãã£ã¬ã¯ããªãTypeScriptãããžã§ã¯ãã®ã«ãŒãã§ããããšã瀺ããŠããŸãã ãã®ãã¡ã€ã«ã¯ãã«ãŒããã¡ã€ã«ãšã³ã³ãã€ã©ãªãã·ã§ã³ãèšå®ããŸãã
ãããžã§ã¯ãèªäœçšã«ãã®ãããªãã¡ã€ã«ã1ã€äœæããããŸããŸãªæ§æãã¡ã€ã«ãæ£ãã䜿çšããããã«Gruntã¿ã¹ã¯ããªãã¡ã¯ã¿ãªã³ã°ããå¿
èŠããããŸããã ããã§ãSeleniumãã¬ãŒã ã¯ãŒã¯ã®äœ¿çšãéå§ããæºåãæŽããŸããã
ãã¬ãŒã ã¯ãŒã¯æ§é ã¯ã7ã€ã®ã¡ã€ã³ã¢ãžã¥ãŒã«ãš5ã€ã®è£å©ã¢ãžã¥ãŒã«ã§æ§æãããŠããŸãã äž»ãªã¢ãžã¥ãŒã«ã¯æ¬¡ã®ãšããã§ãã
- Seleniumãéå§ããã³åæ¢ããã¿ã€ã ã¢ãŠãã管çãããã©ã€ããŒãã³ãã©ãŒã
- ãã¹ãã§äœ¿çšããããã¹ãŠã®èŠçŽ ãå«ãã»ã¬ã¯ã¿ãŒã¢ãžã¥ãŒã«ã
- ã¡ã€ã³ã¢ã¯ã·ã§ã³ãã¡ã€ã«ãã¢ããªã±ãŒã·ã§ã³ã®ããŸããŸãªéšåã§äœæ¥ãæŽçããããŠã¹ã¯ãªãã¯ãèŠçŽ ã®éžæãããŒã¿ã®å
¥åãªã©ãã¢ããªã±ãŒã·ã§ã³ãšã®å¯Ÿè©±ãå®è¡ããŸãã
- ãªãœãŒã¹ããšã¯ã¹ããŒãããã³åé€ããããã®ã¢ãžã¥ãŒã«ã
- ãã®ã³ã°ã¢ãžã¥ãŒã«ã
- ãã¹ãã倱æãããã³ã«ã¹ã¯ãªãŒã³ã·ã§ãããæ®ãã¹ã¯ãªãŒã³ãã£ããã£ã¢ãžã¥ãŒã«ã
- ããã¯ãšã³ãAPIãã·ãã¥ã¬ãŒãããããã®ã¢ãžã¥ãŒã«ã
ãµããŒãã¢ãžã¥ãŒã«ã¯ãã¹ãã«ããŽãªã«åé¡ãããŸãã ãã®ãããJavaScriptã©ã³ã¿ã€ã ã¢ãžã¥ãŒã«ãããããã£ããã«ã¢ãžã¥ãŒã«ãã¿ã€ã ã©ã€ã³ããã«ã¢ãžã¥ãŒã«ãªã©ããããŸããã ãããã®ãã¹ãŠã«ã¯ãç¹å®ã®ã¿ã¹ã¯ãå®è¡ããããã®ã¡ãœããããããŸãã
ããã«ãã¬ããŒãäœæ
ããŒã«mochawesomeãè¿œå ããŸãããããã¯ããã¹ãŠã®ãã¹ãã®å®äºåŸã«å®å
šãªã¬ããŒãã衚瀺ããŸããã
TypeScriptã®ãããã§ã
async / awaitæ©èœããããžã§ã¯ãã§äœ¿çšã§ããããã«ãªããŸããããã®çµæãããã¯ãªãŒã³ã§åªããã³ãŒãã«ãªããŸããã
ä»åŸã®èšç»
å®éãç§ã話ããããšã¯ã»ãã®å§ãŸãã«ãããŸããã TypeScriptãžã®åãæ¿ãã¯ããã±ããã«ããããããã ãã§ãã ãŸã ããããšããããããããŸãã èšç»ã®äžéšã次ã«ç€ºããŸãã
- ãããžã§ã¯ãã¢ãŒããã¯ãã£å
šäœããªãã¡ã¯ã¿ãªã³ã°ããŸãã
- 3Déžæããã³å¢çããã¯ã¹ãèŠçŽ ã®ããŒã¿ãã€ã³ãã£ã³ã°ãžã®èŠèŠçãã€ã³ã¿ãŒãªã©ã®æ°æ©èœãè¿œå ããŸãã
- å
šäœçãªãã¹ãå®è¡æéãæ¹åããŸãã çŸåšã440ã®ãã¹ããå®äºããã®ã«çŽ30åããããŸãã
ããã«ãReactãInfernoJSãªã©ã®ä»®æ³DOMããµããŒãããã©ã€ãã©ãªãå®éšããŠããŸãã ã©ã¡ããTypeScriptãéåžžã«ãããµããŒãããŠããããããããžã§ã¯ãã¯ä»®æ³DOMã§æ©èœããããã©ãŒãã³ã¹ã®åäžãã倧ããªæ©æµãåããããšãã§ããŸãã
TypeScriptã®éçºãå¯æ¥ã«è¿œè·¡ããŠããŸãã æè¿ã®ãªãªãŒã¹ã§ã¯ããªããžã§ã¯ããæäœããããã®ã¿ã€ããããã³ã°ãã¹ãã¬ããããã³ã¬ã¹ãæŒç®åãES3ããã³ES5ã§ã®ã³ã³ãã€ã«æã®éåæé¢æ°ã®ãµããŒããªã©ã®æ°æ©èœãæäŸãããŸãã å°æ¥ã®ãªãªãŒã¹ã§ã¯ãES3 / ES5ã®ãžã§ãã¬ãŒã¿ãŒã®ãµããŒããäžè¬çãªããã°ã©ãã³ã°ããŒã«ã®æ¹åãéåæã€ãã¬ãŒã¿ãŒãäºå®ãããŠããŸãã
ãŸãšã
ç§ãã¡ã®ãããžã§ã¯ãã§TypeScriptã䜿çšãããšãã決å®ã¯æ£ããããšãå€æããå€ãã®è¯ãçµæããããããŸããã ç¹ã«ãããã¯åŽåçç£æ§ã®åäžãã³ãŒã管çã®æ¹åãããã³ES6ãµããŒãã§ãã åœåãç§ã¯TypeScriptã«äžä¿¡æãæã£ãŠããŸããããTypeScriptã䜿çšããåŸãéåžžã«é·ãéè¡æ¹äžæã«ãªã£ãŠãããšèšããŸãã
TypeScriptãè©ŠããŠå®éšããããšã匷ããå§ãããŸãããç¬èªã®ãããžã§ã¯ããTypeScriptã«å€æããããšãæ€èšããéã«ã¯ããã¹ãŠã®è©³çŽ°ãèæ
®ããå¿
èŠããããŸãã ã³ãŒãããŒã¹ã®åŠçã«å¿
èŠãªæéããããžã§ã¯ãã®æ©èœããªãã¡ã¯ã¿ãªã³ã°ã®å¿
èŠæ§ããããŠæãéèŠãªããšãšããŠãTypeScriptã«é¢ããéçºããŒã ã®æèŠãèæ
®ããå¿
èŠããããŸãã
æåŸã«ããã¡ãããTypeScriptã¯éèŠãªçŸè±¡ãšèŠãªãããšãã§ããJavaScriptã®äžçãžã®åœ±é¿ã¯ãããæ¹åããã§ãããã
éçºè
ã®çããïŒ JavaScriptã®éçåä»ãã«ã€ããŠã©ãæããŸããïŒ å€§èŠæš¡ãªJSãããžã§ã¯ããäœãçŽãå Žåãäœãéžã³ãŸããïŒ