ããã§ã TypeScriptèªäœã¯æ£ç¢ºã«äœã§ãã -ãããã誰ã«ãç§å¯ã§ã¯ãããŸããã ããããããã§ããããã¯Microsoftã«ããJavaScriptãžã®éçåä»ãã®è©Šã¿ã§ãã ã³ãŒãã®äŸãšããã«ãã£ãŠè§£æ±ºã§ããã¿ã¹ã¯ã®äŸã¯ã å ¬åŒWebãµã€ããŸãã¯ããã®ããã«ãããŸãã ããã«ã¯åæ§ã®TypeScriptã®èšäºãæ¢ã«ãããŸãïŒäžè¬çãªå°è±¡ ããããã£ãŠãç¹°ãè¿ããªãããã«ãç§ã¯ç§ã®å人çãªçµéšã«åºã¥ããŠãèšèªã§äœæ¥ããããšã®é·æãšçæã匷調ããããšã«ããŸããã èšèªã®é·æãšçæãæãåºããŠãªã¹ãããã®ã¯ç°¡åã§ã¯ãããŸããã§ããã
èšèªã®äººæ°
TypeScriptãããžã§ã¯ãã¯ãMicrosoftã«ãã£ãŠäœæãããŸããã å®éããã®äœæè ã¯Anners Halesbergã§ãã åœåãããTypeScriptã¯æè»æ§ãšããã©ãŒãã³ã¹ã®ããã«ããã«äººæ°ãåããŸããã JavaScriptã§æžãããå€ãã®ãããžã§ã¯ããTypeScriptã«ç§»æ€ããå§ããŸããã ãã®èšèªãžã®é¢å¿ã®é«ãŸãã¯ããã®èšèªã§å®è£ ãããå€ãã®ã¢ã€ãã¢ãåŸã«æ°ããJavaScriptæšæºã®äžéšã«ãªã£ããšããäºå®ã«ãèµ·å ããŠããŸãã Angular 2.0ãvscodeãªã©ã®å€§ããªãããžã§ã¯ããå«ãããã®èšèªã§äœæããããããžã§ã¯ãã¯ãŸããŸãå¢ããŠããŸãã
æš©åšãã人ã ã®å£°
TypeScriptã¯ãééããªãæé«ã®ããã³ããšã³ãJavaScriptèšèªã®1ã€ã§ãã çæããã³ãŒããæãé åçã«èŠããŸãã ãããŠã圌ã¯å®£èšãã¯ã©ã¹ã®ãããªãã®ãå®è£ ããããã«ECMAScriptæšæºã®è² è·ãåãé€ãããšãã§ãããšæããŸãã Andersã¯ããã®æ©èœãããªããã»ããµã«ãã£ãŠååã«ãµããŒããããŠããããšã瀺ãããããã¡ã€ã³èšèªã倿Žããå¿ èŠã¯ãããŸããã
JavaScriptã§ã®ç¡æã®ã¿ã€ãã³ã°ã¯èšèªã®é·æã®1ã€ã§ãããã¿ã€ããã§ãã¯ã¯é倧è©äŸ¡ãããŠãããšæããŸãã TypeScriptã¯å©äŸ¿æ§ãé«ããããŸãã ãããŠãããã¯ç§ãåãã§æ¯æãäŸ¡æ Œã§ã¯ãããŸããã
ãã°ã©ã¹ã»ã¯ããã¯ãã©ãŒãã¯JSLintã®äœæè ã§ãã ãªãªãžãã«
Visual StudioãŠãŒã¶ãŒã«ãšã£ãŠãTypeScriptã¯éåžžã«åªããéçºããŒã«ã§ãããES6ã«ãéåžžã«æºæ ããŠããŸãã ç§ã¯ãã®èšèªã«ã€ããŠãã£ãšè©±ãããšãã§ããŸãããããããDartãšæ¯èŒããçç±ã¯èŠåœãããŸããã
Brendan Ikeã¯JavaScriptã®åµèšè ã§ãã ãªãªãžãã«
ç§ã¯CoffeeScriptã®å€§ãã¡ã³ã§ãããCoffeeScriptã¯ç¬èªã®æ§æãæã€å¥ã®èšèªã§ãã TypeScriptã§æ°ã«å ¥ã£ãŠããã®ã¯ãéçåä»ãã«ãããã³ã³ãã€ã«ããã»ã¹ã«èŠåãšã¹ããŒãã³ãŒããªãã¡ã¯ã¿ãªã³ã°ãæäŸã§ããããšã§ãã ããã«å ããŠãã³ãŒãããã²ãŒã·ã§ã³ãç°¡åã«ãªããŸãã CoffeScriptã®çŸåšã®ããŒãžã§ã³ã§ã¯ããã®ãããªæ©èœã¯äœ¿çšã§ããŸããã
Scott Hanselmanã¯ãã€ã¯ããœããã®ãšãã³ãžã§ãªã¹ãã§ãã ãªãªãžãã«
é·æ
TypeScriptã®å©ç¹ã«ã€ããŠã¯ããªãå€ãã®ããšãæžãããŠããŸãã ãããã£ãŠããã®å©ç¹ãææããããšããŸãã
- å€ãã®äžè¬çãªIDEã®ãµããŒãïŒ
- Visual Studioã®TypeScript
- ããžã¥ã¢ã«ã¹ã¿ãžãªã³ãŒã
- ãŠã§ãã¹ããŒã
- åŽé«ãªããã¹ã
- æ¥é£
- TypeScriptã¯å³å¯ã«åæå®ããïŒ ãªãã·ã§ã³ïŒ ïŒãJavaScriptèšèªã§ã³ã³ãã€ã«ãããŠããŸãã ããã°ã©ããŒã¯JavaãšCïŒãåŠã¶ã®ãç°¡åã§ãã
- TypeScriptã¯ãç¶æ¿ãããªã¢ãŒãã£ãºã ãã«ãã»ã«åãã¢ã¯ã»ã¹ä¿®é£Ÿåãªã©ãå€ãã®OOPã®æŠå¿µãå®è£ ããŠããŸãã ã¯ã©ã¹ãã€ã³ã¿ãŒãã§ãŒã¹ãããã³ïŒå¶æ°ïŒïŒæœè±¡ã¯ã©ã¹ããããŸãã
- ãã®èšèªã®å¯èœæ§ã«ãããæšæºã®JavaScriptãããå°æ¥ã®éçºãšãã¹ãã容æãªè€éãªçµ±åãœãªã¥ãŒã·ã§ã³ãããéãç°¡åã«æžãããšãã§ããŸãã
- TypeScriptã¯JavaScriptã®ã¹ãŒããŒã»ããã§ãããããJavaScriptã³ãŒãã¯ãã¹ãŠTypeScriptã§ãå®è¡ãããŸãã ç§ã®æèŠã§ã¯ãããã¯ç«¶åä»ç€Ÿã«å¯Ÿããäž»ãªå©ç¹ã§ããããšãã°ãGoogleã®Dartã¯Javascriptããæ ¹æ¬çã«åèšèšãããèšèªã§ãã Javascriptãããžã§ã¯ãã®TypeScriptãžã®ç¿»èš³ã«é¢ããèšäºããããŸã
çæ
ã»ãšãã©ã®å ŽåãTypeScriptã¯è³è³ãããŠããããã«æããŸãã ãããã£ãŠãTypescriptã®äœãåé¡ãªã®ãã«ã€ããŠã®æçš¿ãæžããããšæããŸããã çµå±ã®ãšãããçæãèŠã€ããã®ã¯ç°¡åã§ã¯ãããŸããã§ããã
- éçºã®ããã»ã¹ã§ã¯ã* .tsã* .d.tsã* .mapã* .jsãã¡ã€ã«ãæ±ã£ãŠããŸãã 远å ãã¡ã€ã«ãå€ãããããããããžã§ã¯ããå°ããå Žåã¯äžäŸ¿ã§ãã
- ãã¹ãŠã®ãã©ãŠã¶ããäžèŠãªèšå®ãªãã«ã³ã³ãœãŒã«ã§TypeScriptãããã°ããµããŒãããŠããããã§ã¯ãããŸããã
- å€ãã®èªæã§ãªãã¯ã©ã¹ã ã¯ã©ã¹ã«åºã¥ããŠã³ãŒããèšè¿°ããã«ã¯ãã©ã®ããããã£ãã©ãã«ããããèŠããŠããå¿ èŠããããŸãã ããšãã°ã1ã€ã®ã€ãã³ãã¯ã©ã¹ã®ä»£ããã«ãMouseEventãTouchEventãKeyboardEventãªã©ããŸã ãããŸã...
- æé»çãªéçåä»ãã ã¿ã€ãã¯ãã€ã§ãanyãšããŠèšè¿°ã§ããŸããå®éããã®å€æ°ã®ç¹å®ã®ã¿ã€ããžã®ãã£ã¹ãã¯ç¡å¹ã«ãªããŸãã
- ããã¯ãã©ã³ã¹ããŒã¿ãŒã§ãããåžžã«æå ã«TSCãå¿ èŠã§ããããšãæå³ããŸã
- d.ts宣èšã¯DefinitelyTypedã³ãã¥ããã£ã«ãã£ãŠãµããŒããããŠãããå€ãã®å Žåãã©ã€ãã©ãªã®çŸåšã®ããŒãžã§ã³ãšäžèŽããŸããã ãŸãã¯ãè€éãªããªã¢ã³ãïŒæ±çšé¢æ°ãè€æ°ã®ã¿ã€ãã®æ»ãå€ïŒãèæ ®ããŸãã
éçåä»ãã«ã€ããŠå°ã
ãã¹ãŠã®éçºè ã®ç掻ã®äžã§ã圌ã¯åã³ã®ããã«ã³ãŒããæžããšãããããŸãã ãããããŒã ãããžã§ã¯ãã§ããããšããããã¯ãŒãããæžãå§ããã°ããã®ãããžã§ã¯ãã®ããŒã ã¯ãŒã¯ã§ããããšã ããã¯ãååãšã®ã³ãŒãã®ç«¶åã«ã€ããŠå€ãã®ããšãèãããšã©ãŒãæ¢ãå¿ èŠããªãçŽ æŽãããç¬éã®1ã€ã§ãã ãããããããžã§ã¯ãã¯æé·ããŠãããåçã«åä»ããããèšèªïŒJavaScriptïŒã§ã³ãŒããèšè¿°ãããšãåãå«ãæ°ããæ©èœãšãã°ãçãèããŸãã
ãã®å Žåã®è§£æ±ºçã¯äœã§ããïŒ ãã¹ããæžãïŒ
ããããã³ã³ãã€ã«ã®æ®µéã§ãã·ã³ãäœãããŸãåŠçã§ãããã確èªããå¿ èŠãããããšãèªããªããã°ãªããŸããã éçåä»ãã䜿çšããèšèªã¯ãåãšã©ãŒã«é¢é£ãã远å ã®ãã¹ããäžå¿ èŠã«èšè¿°ããããšãé²ããŸãã ãããã£ãŠãã¿ã€ããç¡èŠããªãå ŽåãTypeScriptã«ã¯JavaScriptããã倧ããªå©ç¹ããããŸãã
ç°¡åãªäŸãèŠãŠã¿ãŸãããã
2ã€ã®æ°å€ã远å ã§ãã颿°ããããŸãã
function sum(a, b) { return a + b; }
顧客ã¯ããŠãŒã¶ãŒã远å ãããçªå·ãå ¥åã§ããWebãã©ãŒã ãå®è£ ããããšãææ¡ããŸããã
var result = sum( document.getElementById("input1").value, document.getElementById("input2").value, ) document.getElementById("result").innerText = result;
å ¥åãã£ãŒã«ãã«2ãš3ã®2ã€ã®æ°å€ãæžã蟌ã¿ã颿°ã®åäœã確èªããŸãã
23
çµæã¯ãŸã£ããäºæ³å€ã§ããã åé¡ã¯ãhtml inputã¿ã°ã®valueãã£ãŒã«ãããstringãã¿ã€ãã®çµæãè¿ããJavaScriptããããã®æ°åã远å ãã代ããã«2ã€ã®ã¹ããªã³ã°ã1ããšã2ããæ¥çããããšã§ãã
ãã¡ããããã®äŸã¯éåžžã«åçŽã§ãããå®éã®ãšã©ãŒã¯ããè€éã«ãªãå¯èœæ§ããããéçºæ®µéã§ãšã©ãŒã«æ°ä»ãããšã¯éåžžã«å°é£ã§ãã
ãã®åé¡ã®è§£æ±ºçã¯ãTypeScriptã䜿çšããŠéåžžã«ç°¡åã«è§£æ±ºã§ããŸãã
function sum(a: number, b: number): number { return a + b; } sum(2, 3); // Ok sum(2, "3"); // Error!
ãã§ã«ã³ã³ãã€ã«æ®µéã§ããšã©ãŒãæ€åºããããšãã§ããŸããã ãšã©ãŒãæ€çŽ¢ããŠè¿œå ã®ãã¹ããäœæããããããéçºã«ãšãã«ã®ãŒãè²»ããæ¹ãè¯ãã§ãããã
ãããã«
TypeScriptéçºã®é·æãšçæãèãããšããçæã匷調ããã®ã¯ç°¡åã§ã¯ãããŸããã§ããã TypeScriptã¯ãå€§èŠæš¡ãããžã§ã¯ãã§æ£åœåããã以äžã®ãã®ã§ãã ããã¯ãã¡ãœãããšã¯ã©ã¹ã«å ããŠããããã®å®£èšãèšè¿°ããå¿ èŠããããšããäºå®ã®ããã«ãJavaScriptã§ã®éçºããæéãããããšããäºå®ã«ãããã®ã§ãã ããã«ãããããããJavaScriptã«éââçåä»ãããªãéããTypeScriptã¯åªããä»£æ¿ææ®µã§ãã
PSãç§ã®èšäºã®ç®çã¯ãTypeScriptã®é·æãšçæãçè§£ããããšã§ããã ãããã£ãŠãã¡ãªããã«ã€ããŠã®ã³ã¡ã³ããæè¿ããŸãã