ãã®èšäºã®ã¢ã€ãã¢ã¯ããªãã£ã¹ã§30床ã®å³ããä»äºããããææ°ã®Webã¢ããªã±ãŒã·ã§ã³ãã©ã®ããã«æ§ç¯ããå¿
èŠããããããšãããããã¯ã«é¢ããæ·±ãåçãšããªããŒãçµãŠçãŸããŸããã
ãããŠãã¢ã€ãã¢ã¯ãHabréã®ã¿ã¹ã¯ã«åãçµãç§ã®ããã»ã¹ãè¿°ã¹ãããã«ç§ã«æ¥ãŸããã ãããŠãç§ã¯ããã现éšãŸã§ææ¡ããã³ãã¥ããã£ã®ç¥èã«è²¢ç®ããŸãã
ãã®èšäºã§ã¯äœã«ã€ããŠèª¬æããŸããïŒ ã¢ãžã¥ã©ãŒã¢ãŒããã¯ãã£ãå®è£
ããã¢ãžã¥ãŒã«ãéåæã€ãã³ãã¢ãã«ãéåæã«ããŒãããç¹å®ã®ã€ãã³ããçºçãããšãã«ã¢ãžã¥ãŒã«ã®ç¶æ
ãæŽæ°ãããïŒã§ã¯ãªãïŒå€§èŠæš¡ãªTypeScriptã¢ããªã±ãŒã·ã§ã³ãäœæããŸãã ãã®èšäºã¯ãç§ã®è¡åãšæèã®æ¥èšãšæ¥èšãšããŠæ©èœããŸãã ç§ã®å人çãªç®æšã¯ãããã€ãã®å®çšçãªãããã¿ã€ããäœæãããã®çµéšãåŸã§å®éã®ãããžã§ã¯ãã§äœ¿çšã§ããããã«ããããšã§ãã ã³ãŒãã¯å¯èœãªéãæ£ç¢ºã«èšè¿°ãããå®éã®éçºã®èŠä»¶ã«è¿ããã®ã«ãªããŸãã 説æã¯ãåŸã»ã©ç§ã®æå°ã®äžã§åããŠããåŸèŒ©ã«ãã£ãŠèªãŸãããã®ããã«äžããããŸãã
èšäºã¯çްããåå²ãããŸãããã§ããã ãæ©ãå
¬éè£å€ã«ãããŸãã æåã®éšåã¯ãåé¡ã®äžè¬çãªå®åŒåãã¢ãžã¥ãŒã«ãããã³ãããã®éåæããŒãã«å°å¿µããŸãã
ããã§ãç§ãšã³ãã¥ããã£ã«ãããã®çŽæãäžããAC / DCããªã³ã«ããŠãç§ã®èããéããŠãç§ã¯å
ã«é²ã¿ãŸãã
ããŒã2ïŒ
ã¹ã±ãŒã©ãã«ãªTypeScriptã¢ããªã±ãŒã·ã§ã³ã®æ§ç¯ã ããŒã2-ã€ãã³ãããŸãã¯èªåã®èªè»¢è»ãåçºæãã䟡å€ãããçç±ããŒã2.5ïŒ
ã¹ã±ãŒã©ãã«ãªTypeScriptã¢ããªã±ãŒã·ã§ã³ã®æ§ç¯-ããŒã2.5ã ãã°ãšããªã²ãŒãã«åãçµãäœ¿çšæžã¿ãœãããŠã§ã¢ããã³ãã®ä»ã®ã³ã¡ã³ã
ãã®èšäºã§ã¯ãVisual Studio Express 2012 for Webããã¹ãŠã®ææ°ã®æŽæ°ãå«ãäœæ¥ããŒã«ãšããŠäœ¿çšããŸãã ãã®çç±ã¯ã仿¥ã§é©åãªTypeScriptããµããŒãããŠããå¯äžã®IDEã§ãã
TypeScriptèªäœã«ã€ããŠã TS 0.8.3ã䜿çšãã3ãæã®çµéšãããTSã¯æ°äžè¡ã®ã³ãŒããåããéåžžã«åªããWebã¢ããªã±ãŒã·ã§ã³ãäœæããããã®æ¬åœã«æå¹ãªããŒã«ã§ããããšãããããŸãã éçã³ãŒãåæã¯ããšã©ãŒã®æ°ãå®éã«1æ¡æžãããŸãã ãŸããã»ãŒå®å
šãªã¯ã©ã·ãã¯OOPãèšèªã¬ãã«ã§ã®å®éã®ã¢ãžã¥ãŒã«æ§ã«ãããRequire.jsããã³Node.jsãVisual Studioã®IntelliSenseãšã®ééçãªçµ±åãå¯èœã«ãªããå®éãã€ããªãã®ãŒã¯æããã«CïŒãäžããŠãããŸãã TSããJSãžã®ééçãªå€æã«ããããœãŒã¹ããããååšããŠããŠãããœãŒã¹ãããã®å©ãããªããŠãã³ãŒããç°¡åã«ãããã°ã§ããŸãã ãã®èšäºãæžãã«ã¯ãææ°ããŒãžã§ã³-ãžã§ããªãã¯ããã³ãã®ä»ã®æ©èœãåãã0.9ã䜿çšããŸãã
Require.jsã䜿çšããŠéåæèªã¿èŸŒã¿ãå®è£
ããŸãã Node.jsã¯ããµãŒããŒåŽã®ã·ãã¥ã¬ãŒã·ã§ã³ã«äœ¿çšãããŸãã
JQuery 1.10ïŒIE8ãšã®äºææ§ãå¿
èŠïŒããã³Underscore.jsã¯ããæšæºã©ã€ãã©ãªããšããŠãããžã§ã¯ãã«å«ãŸããŸãã ç§ãã¡ã®ã€ã³ã¿ãŒãã§ãŒã¹ã®åºç€ã¯ãBackbone.jsã§ãã æšæºã®TSïŒjQueryïŒãã£ã¹ããªãã¥ãŒã·ã§ã³ãšDefinitelyTypedãããžã§ã¯ãïŒgithub.com/borisyankov/DefinitelyTypedïŒRequire.jsãUnderscoreãBackboneãNode.jsïŒïŒã®ããããŒd.tsãã¡ã€ã«ã䜿çšããŸãã
WinAmpã¯ãAC / DCã®ãã¬ã€ã«äœ¿çšãããŸãã
TypeScriptã«ã€ããŠå°ã
TSããã°ã©ã ã¯ã* .tsããã³* .d.tsãã¡ã€ã«ã®ã»ããã§æ§æãããŠããŸãã ãããã¯ãC ++ã®* .cppããã³* .hãã¡ã€ã«ã®é¡äŒŒç©ãšããŠè¡šãããšãã§ããŸãã ã€ãŸã åè
ã«ã¯å®éã®ã³ãŒããå«ãŸããåŸè
ã«ã¯åãååã®å®è£
ãã¡ã€ã«ãæäŸããã€ã³ã¿ãŒãã§ãŒã¹ãèšè¿°ãããŠããŸãã TSããããŒã®ã¿ã§éçºããå Žåãd.tsãã¡ã€ã«ã¯å¿
èŠãããŸããã ãŸããd.tsã¯å®è¡æã«ã³ã³ãã€ã«ããã³äœ¿çšãããŸããã ãã ããæ¢åã®JSã³ãŒããèšè¿°ããã«ã¯d.tsãã¡ã€ã«ãäžå¯æ¬ ã§ãã ãªããªã TSã¯å®å
šã«JSã«å€æãããä»»æã®JSã³ãŒããå®å
šã«äœ¿çšã§ããŸãããã³ã³ãã€ã©ã¯JSã§äœ¿çšãããåã倿°ãããã³é¢æ°ã«ã€ããŠç¥ãå¿
èŠããããŸãã D.tsãã¡ã€ã«ã¯ããã®èª¬æã®ç®çãæããã ãã§ãã ãã以äžè©³ããã¯è¿°ã¹ãŸãããããã¹ãŠTS仿§ã«ãããŸãã
äžè¬ã«ãexample.tsãã³ã³ãã€ã«ãããšããæ¬¡ã®ãã¡ã€ã«ãäœæã§ããŸãã
- example.d.ts-ä»ã®ãããžã§ã¯ãã§äœ¿çšããããããŒãã¡ã€ã«
- example.js-ã©ã³ã¿ã€ã ã§äœ¿çšããJS
- example.map.js-ãããã°çšã®ãœãŒã¹ããã
ãããžã§ã¯ãæ§é
Visual Studioã§TypeScriptãããžã§ã¯ããäœæããŸãã

CodePlexã§å
¬éãããã¹ãŠã®ãœãŒã¹ïŒ
tsasyncmodulesexampleapp.codeplex.com ã
ããã©ã«ãã³ãŒãã远å ãã2çªç®ã®ãããžã§ã¯ã-ãµãŒããŒãäœæããå¿
èŠãªãã¹ãŠã®ãœãŒã¹ã©ã€ãã©ãªãã¡ã€ã«ãæ¥ç¶ããŠãæ¬¡ã®æ§é ãååŸããŸãã

å®è·µã§ã¯ãå
±æã©ã€ãã©ãªã®d.tsãã¡ã€ã«ã¯ããããžã§ã¯ããšåçã«æé©ã§ããããšã瀺ãããŠããŸãã åŸã§ãã¹ããèšè¿°ãããšãã«éåžžã«åœ¹ç«ã¡ãŸãããå¥ã®æéã«ã€ããŠãããã³è€æ°ã®ãããžã§ã¯ããåãã©ã€ãã©ãªã䜿çšããå Žåã«ã€ããŠãåæ§ã§ãã
ããã§ã¯ãVisual Studioã䜿çšããŠããŸãã¯äœ¿çšããã«TypeScriptãããžã§ã¯ããã³ã³ãã€ã«ããæ¹æ³ã«ã€ããŠå°ã説æããå¿
èŠããããŸãã æåã®ã±ãŒã¹ã§ã¯ãã¹ã¿ãžãªã¯éçºè
ã®ããã«ãã¹ãŠãè¡ãããã¡ã€ã«ãžã®ãªã³ã¯ããªãå Žåããã¡ã€ã«ã1ã€ãã€ã³ã³ãã€ã©ãŒã«æž¡ããŸãã ã€ãŸã ãã¹ãŠã®tsãã¡ã€ã«ã¯åžžã«ã³ã³ãã€ã«ãããŸãã ã³ãã³ãã©ã€ã³ãããããžã§ã¯ãããã«ãããå Žåãä»ã®ãã¹ãŠã®ãã¡ã€ã«ãžã®ãªã³ã¯ãæã€ãã¡ã€ã«ã§ã¢ã»ã³ããªãéå§ããå¿
èŠããããŸãã éåžžã////>ãå«ããããžã§ã¯ãã«ãŒãã«Build.d.tsãã¡ã€ã«ãäœæããŸãã ã¢ã»ã³ãã«ããå¿
èŠããããã¹ãŠã®ãããžã§ã¯ããã¡ã€ã«ã«ãªã³ã¯ããã³ã³ãœãŒã«ãä»ããŠã³ã³ãã€ã©ã«æž¡ããŸãã ãã®æ¹æ³ã«ãããTSã³ã³ãã€ã©ã®èšå®ãã¹ã¿ãžãªã®çŸåšã®ãã©ã°ã€ã³ãããã¯ããã«æè»ã«ç®¡çããããšãã§ããŸããããã¯ãä»åŸå¿
èŠã«ãªãã§ãããã
Node.exeãšå®å
šãªTSé
åžãããã远å ããããããžã§ã¯ãã«æ
£ããéã«ã¹ã¿ãžãªãä»ã®ã€ã³ã¹ããŒã«æžã¿ãœãããŠã§ã¢ã«çžãããªãããã«ãªããŸããã ã¹ã¿ãžãªãšã®ç°¡åãªèµ·åãšçµ±åã®ããã®Cmdãã¡ã€ã«ãåŸã§èª¬æããŸãã
ãã¬ãŒãã³ã°ã¿ã¹ã¯ã®èª¬æ
æè²çãªäŸãšããŠãããã€ãã®ç¬ç«ããã€ã³ã¿ãŒãã§ã€ã¹ã³ã³ããŒãã³ãããµãŒããŒã«ããŒã¿ãã¢ããããŒãããããã®äžéå±€ãããã³æŽåçãªã¢ã¯ãã£ããã£ãã·ãã¥ã¬ãŒãããåœã®ãµãŒããŒã§æ§æããããµã€ãäžã®ããŒãœãã«ã¡ãã»ãŒãžã³ã°ã·ã¹ãã çšã®ã·ã³ãã«ãªã¯ã©ã€ã¢ã³ããäœæããŸãã ãµãŒããŒãšã®éä¿¡ã¯ãå®ãããªãµãŒãã¹ãä»ããŠè¡ãããŸãããé«å質ã®èšè¿°ã¯äž»ãªã¿ã¹ã¯ã§ã¯ãããŸããã 圌ãã¯ã¡ããã©åäœããã®ã«ååã§ãã ã·ã¹ãã ã«ã¯2ã€ã®ç»é¢ããããŸããæåŸã®3ã€ã®ã¡ãã»ãŒãžã®çããªã¹ããšãæ¬æ Œçãªã¯ã©ã€ã¢ã³ãã®ç»é¢ã§ãã ããããåãæ¿ããããšãã§ããã¡ãã¥ãŒããããŸãã èªå¯ãªã© ãã®èšäºã¯æ€èšããŸããã
ç»é¢ã¯å®å
šã«ç¬ç«ããã¢ãžã¥ãŒã«ã§ãããäºããèªèããŸããããããŒã¿ã¢ã¯ã»ã¹ã¬ã€ã€ãŒãèªèããŸãã ãã¹ãŠã®ç»é¢ãšããŒã¿ã¢ã¯ã»ã¹ãªããžã§ã¯ãã¯å¥ã
ã®ã¢ãžã¥ãŒã«ã«ã©ãããããéåæã«ããŒããããã€ãã³ããããŒãžã£ãŒãä»ããŠã€ãã³ããçºè¡ããã³ãµãã¹ã¯ã©ã€ãããããšã«ããçžäºã«éä¿¡ããŸãã åºç瀟/賌èªè
ã®ãã¿ãŒã³ã«ããã
ã¢ãžã¥ã©ãŒããŒãã®æ§æ
ãã¹ãŠãéåžžã«ç°¡åã§ãã ããã©ã«ãã§åãåã£ãã¯ã©ã€ã¢ã³ããããžã§ã¯ãã®App.tsãã¡ã€ã«ã«ã次ã®ã³ãŒãã远å ããŸãã
export class App { public static Main(): void { alert('Main'); } }
ãããžã§ã¯ãã®ã«ãŒãã«RequireJSConfig.tsãã¡ã€ã«ãäœæããŸãã
Default.htmïŒ
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <title>TSAsyncModulesExampleApp</title> <link rel="stylesheet" href="app.css" type="text/css" /> <script src="js/jquery-1.10.1.min.js"></script> <script src="js/underscore-min.js"></script> <script src="js/backbone.js"></script> <script src="js/require.js" data-main="RequireJSConfig"></script> </head> <body> </body> </html>
ã¢ããªã±ãŒã·ã§ã³ãèµ·åããŸãã

ããã§ãšãããããŸããéåæã«ããŒãå¯èœãªã¢ãžã¥ãŒã«ãåããã¢ããªã±ãŒã·ã§ã³ãæã«å
¥ããŸããã
ç§ãã¡ãè¡ã£ãããšãããã«è©³ããèŠãŠã¿ãŸãããã
ãŸããTSã§ãã¡ã€ã«ãã©ã®ããã«ã³ã³ãã€ã«ããããã詳ãã説æããŸãã ãã¡ã€ã«ã«ãšã¯ã¹ããŒããã£ã¬ã¯ãã£ããå«ãŸããŠããå Žåãããã¯ã³ã³ãã€ã©èšå®ã«å¿ããŠãCommonJSãŸãã¯AMDã¢ãžã¥ãŒã«ã«äžæã«ã³ã³ãã€ã«ãããããšãæå³ããŸãã VSã®ããã©ã«ãã§ã¯ãã³ã³ãã€ã«ã¯AMD圢åŒã§è¡ãããŸããããã¯ãRequire.jsã䜿çšããã³ã³ããã¹ãã§ã¯äŸ¿å©ã§ãã TSã¯ãAMDã¢ãžã¥ãŒã«ãã©ããããããã®ãæ°å³ã®æªããæåã³ãŒããèšè¿°ããå¿
èŠãå®å
šã«æé€ããäŸåé¢ä¿ã®æ£ããã€ã³ã¹ããŒã«ãåŠçããŸãã ããã¯ãApp.tsã§èгå¯ãããåäœã§ãã
define(["require", "exports"], function(require, exports) { var App = (function () { function App() { } App.Main = function () { alert('Main'); }; return App; })(); exports.App = App; });
RequireJSConfig.tsã«ã¯ãšã¯ã¹ããŒããã£ã¬ã¯ãã£ããå«ãŸããŠããããéåžžã®ããã©ãããJSã«ã³ã³ãã€ã«ãããŸãã
ã³ã¡ã³ãã¯ããããã°ç®çã§ã®ã¿ã³ãŒãã«æ®ããŸãã ãããã°ã¢ããªã±ãŒã·ã§ã³ãã«ãã¢ãŒãããããŸãã ãªãªãŒã¹æ§æã§ã¯ããã¹ãŠã®ã³ã¡ã³ããæ¶å»ãããŸãã
ããããç§ãã¡ã®ããŒ...ã¢ãžã¥ãŒã«ã«æ»ããŸãã äœãèµ·ãã£ãïŒ
- default.htmãããŒãããŸãã
- Cssããã³éçã«èšå®ãããjsãã¡ã€ã«ãããŒããããŸãããããã¯ã䞻芳çãªæèŠã§ã¯ãéåæã«ããŒãããæå³ããããŸããã ãããã¯ç§ãã¡ãäœæããã»ãšãã©ãã¹ãŠã®ã¢ãžã¥ãŒã«ã«å¿
èŠã§ãã
- ã¢ã€ãã 2ã®jsã®äžã§ãrequire.jsãããŒããããŸãã
- Require.jsã¯ãdata-main = "RequireJSConfig"屿§ã®å€ãèªã¿åãã察å¿ããJSãã¡ã€ã«ãèªã¿èŸŒã¿ãŸãããããã¯éå§ãã¡ã€ã«ãšããŠæ±ãããŸãã
- RequireJSConfigã§ã¯ãã°ããŒãã«ã³ã³ããã¹ãã§æåãšæåŸã«requireã¡ãœããã䜿çšããŸãã ããã«ããã¹ãŠã®ã¢ãžã¥ãŒã«åŒã³åºãã¯ä»ã®ã¢ãžã¥ãŒã«ããã®ãã®ã§ãªããã°ãªããŸããã
- require颿°ã§ã¯ãAppã¢ãžã¥ãŒã«ïŒæåã®ãã©ã¡ãŒã¿ãŒïŒãèªã¿èŸŒãã åŸãåãååã®å€æ°ãšããŠèªã¿èŸŒãã ã¢ãžã¥ãŒã«ã転éããã³ãŒã«ããã¯ãåŒã³åºãå¿
èŠããããšèšããŸãã ããã§ã¯ãè¯å¿ãšã®ååŒã«é²ã¿ãTSã§ãããé¡ååããŸããã ãã®å Žæã§ã¯ãTSã®ã¢ãžã¥ãŒã«åã®ã€ããªãã®ãŒãšãéåæã¹ã¯ãªããèªã¿èŸŒã¿ã®ãããŒãžã£ãŒãšããŠã®Require.jsã®ç¹å®ã®å®è£
ãšã®éã«ççŸããããŸãã 詳现ã¯ä»¥äžãã芧ãã ããã
- Require.jsã¯Appã¢ãžã¥ãŒã«ãããŒãããŸãã ã¢ãžã¥ãŒã«ã®åœåèŠåã®è©³çްã«ã€ããŠã¯ãRequire.jsã®ããã¥ã¡ã³ããã芧ãã ããã ã€ãŸããã«ãŒãããã®ãã¹ã瀺ããŸããããã¯ãããã©ã«ãã§äœ¿çšãããµã€ãã®ã«ãŒããšã¯ç°ãªããã¡ã€ã«æ¡åŒµåãæå®ããã«æå®ã§ããŸãã æ¬¡ã«ãRequireJSã¯head.appendChildïŒïŒã䜿çšããŠãåäŸåãã¡ã€ã«ãã¹ã¯ãªããã¿ã°ãšããŠããŒãããŸãã å¿
èŠãªã¢ãžã¥ãŒã«ã¯æåŸã«ããŒããããŸããã€ãŸã äŸåé¢ä¿ã®åŸãã€ãŸãããã¹ãŠã®äŸåé¢ä¿ãåžžã«ããŒããããããšãåžžã«ç¢ºèªã§ããããšãæå³ããŸãã Require.jsãšTSã¯ããã®åé¡ã§å®å
šã«äžè²«ããæ¹æ³ã§æ©èœããŸãã TSã®æ§æãšã³ã³ãã€ã«ããã»ã¹ã¯ããã®ã·ããªãªã«ç¹ã«é©åããŠããŸãã
- requireã¡ãœããã«æž¡ãããã³ãŒã«ããã¯ã¯ãAppã¢ãžã¥ãŒã«ã®Appã¯ã©ã¹ã§ããMainã®éçã¡ãœãããåŒã³åºããŸãã
- åŒã³åºãããã¢ã©ãŒãïŒãã¡ã€ã³ãïŒ;
requireã¡ãœããã®ã³ãŒã«ããã¯ãã©ã¡ãŒã¿ã¯ããã®ã³ã³ããã¹ãã§ã¯TSã³ã³ãã€ã©ã«ç¥ãããŠããªããããã¿ã€ããããŠããŸããã é¡ååããã«ã¯ã次ã®åœ¢åŒã®TSã³ã³ã¹ãã©ã¯ãã䜿çšããå¿
èŠããããŸãã
import App = require('App');
ãã®èšèšã¯ãä»ã®ã¢ãžã¥ãŒã«ãããŒãããããã«ã¢ãžã¥ãŒã«ã®ã³ã³ããã¹ãã§ã®ã¿äœ¿çšã§ããAMD / CommonJSã¢ãžã¥ãŒã«ã©ãããŒã«å¯Ÿå¿ããäŸåé¢ä¿ã圢æããŸãã ã©ãããŒãªãã®éåžžã®ãã©ããã³ãŒããã€ãŸã ççŸãçããŸãã ã€ãŸããTSã¯ã¢ãžã¥ãŒã«ã³ãŒãçæã®åéã§Require.jsãšå®å
šã«äžè²«ããŠããŸãããæåã®ã¢ãžã¥ãŒã«èªã¿èŸŒã¿ã¹ã¯ãªããããµããŒãããŠããŸããã ãããã£ãŠããã®ç¶æ³ã§æ®ã£ãŠããã®ã¯ãããã©JSã®ã¹ã¿ã€ã«ã§å€ãè¯ãã¢ãããŒãã䜿çšããããšã§ãã
远å ã¢ãžã¥ãŒã«ãããŠã³ããŒããã
ããã§ãMainã¡ãœãããšåŒã°ããæåã®ã¢ãžã¥ãŒã«ãããŒããããšãã¢ããªã±ãŒã·ã§ã³ãåäœãéå§ããŸããã æè²TKã«ãããšãä»»æã®æ°ã®ã¢ãžã¥ãŒã«ãããŒãã§ããå¿
èŠããããŸãã ãã ããããŠã³ããŒããéå§ããåã«ãTSã®ã¢ãžã¥ãŒã«ãšã¯äœããçè§£ããå¿
èŠããããŸãã
- ãŸããã¢ããªã±ãŒã·ã§ã³ã®èªåŸçãªéšåã§ããã颿°ãšå€æ°ãå€éšã«ãšã¯ã¹ããŒãããã¢ãžã¥ãŒã«ãã¿ãŒã³ãå®è£
ããã³ãŒãã§ãã ããã«ãå®è£
å
šäœãå€éšããé ãããŠããŸãã å®éãããã¯æãçŽç²ãªåœ¢åŒã®ã«ãã»ã«åã§ãã
- 第äºã«ãã¢ãžã¥ãŒã«ãããŒãããåŸã倿°ã«å²ãåœãŠãããŸãã ã€ãŸã ãªããžã§ã¯ããšããŠäœ¿çšã§ããŸãã å®éãã¢ãžã¥ãŒã«ã¯JSã®èгç¹ããã¯ãªããžã§ã¯ãã§ãã
- 第äžã«ãã¢ãžã¥ãŒã«ã¯ãã¡ã€ã«ã§ãã
- 第4ã«ãã¢ãžã¥ãŒã«ã¯TSã®åå空éã§ãã çŽç²ãªåå空éãå®è£
ããä»ã®ã¢ãžã¥ãŒã«å
ã§ããšã¯ã¹ããŒãã§ããªãã¢ãžã¥ãŒã«ã宣èšãããŠããå ŽåããããŸãã ã€ãŸã ã¢ãžã¥ãŒã«ã®ãã¹ãã¬ãã«ã®æ°ã«å¶éã¯ãããŸãããããããã¬ãã«ã¢ãžã¥ãŒã«ã®ã¿ãAMD / CommonJSã¢ãžã¥ãŒã«ã«å€æãããã¹ã¿ã³ãã¢ãã³ãã¡ã€ã«ã«æã¡èŸŒãŸããŸãã
å®éãã¢ãžã¥ãŒã«ã¯äžåºŠã«ãã¹ãŠã§ãã ã¢ãžã¥ãŒã«ã®äœ¿çšããããŸãã§ãã 確ãã«èšããããšã¯ãã¢ãžã¥ãŒã«ãã¢ããªã±ãŒã·ã§ã³ãèªåŸçã§åå©çšå¯èœãªã³ã³ããŒãã³ãã«åå²ãããããç§ãã¡ã®ç®æšãå®å
šã«æºãããšããããšã§ãã
æ°ãããã¡ã€ã«Framework / Events.tsãäœæããŸããããã¯ãå°æ¥ãæœè±¡ã€ãã³ãã¢ãã«ã®å®è£
ã®éå§ç¹ãšããŠäœ¿çšããŸãã
export interface IEventPublisher { On(); Off(); Trigger(); } export class EventPublisherBase implements IEventPublisher { On() { } Off() { } Trigger() { } constructor() { alert('EventPublisher'); } }
ãããŸã§ã®ãšããããã¹ãŠã®ã¡ãœããã¯åãªãã¹ã¿ãã§ãã ä»äºã®ååã¯ç§ãã¡ã«ãšã£ãŠéèŠã§ãã
App.tsã®å€æŽïŒ
import Events = require('Framework/Events'); export class App { public static Main(): void { var e = new Events.EventPublisherBase(); } }
ã¢ãžã¥ãŒã«èªã¿èŸŒã¿ãã£ã¬ã¯ãã£ãããããŸãïŒ
import Events = require('Framework/Events');
ãã¹ã¯ã«ãŒããã瀺ãããŸãã äžèšã®ããã«ãã¢ãžã¥ãŒã«ã¯å€æ°ã«å²ãåœãŠãããŸãã æ¬¡ã«ãã¢ã©ãŒãã宣èšããã³ã³ã¹ãã©ã¯ã¿ãŒã§ãEventsåå空éããEventPublisherBaseã¯ã©ã¹ã®æ°ããã€ã³ã¹ã¿ã³ã¹ãäœæããŸãã
ãã®å ŽåãEvents倿°ã¯åŒ·ãåä»ããããŠããŸãã ã³ã³ãã€ã©ã¯ãããŒãå¯èœãªã¢ãžã¥ãŒã«ã®ã¿ã€ããå³å¯ã«ç£èŠããŸãã ã³ã³ãã€ã©ãŒã¯ã¢ãžã¥ãŒã«å
ã®åå¶åŸ¡ã®ããã®åç
§ãã£ã¬ã¯ãã£ããå¿
èŠãšããªãããæ£ããã³ã³ãã€ã«ã®ããã«ãããå¿
èŠãšããããšã«æ³šæãã¹ãã§ãã ã€ãŸã ã³ã³ãã€ã©ã¯ãããªãã§ã¯äŸåé¢ä¿ã远跡ã§ããŸããã çŸåšãVSã¯ã³ã³ãã€ã©ã®ä»£ããã«ãæç€ºçãªãã¡ã€ã«åã«çœ®ãæããŠäœæ¥ãè¡ããŸãã ããã解決ããã«ã¯ãåè¿°ã®Build.d.tsãã¡ã€ã«ãäœæããããã«é¢ããã³ã³ãã€ã«ãéå§ããŸãã
ã³ã³ãã€ã«ã«äœ¿çšã§ãããµã³ãã«cmdãã¡ã€ã«ïŒBuild-Client.cmdïŒã¯ããœãªã¥ãŒã·ã§ã³ã®ã«ãŒãã«æ·»ä»ãããŠããŸãã
å®éãéåæèªã¿èŸŒã¿ã«é¢ããŠã¯ããã ãã§ãã ãã¹ãŠãéåžžã«ã·ã³ãã«ã§ã·ã³ãã«ã§ãã
ç§ã®ã°ã©ãã©ããã¢ã³äœåãã³ãã¥ããã£ã«ãšã£ãŠè峿·±ããã®ã«ãªãããšãé¡ã£ãŠããŸãã èšäºã®æ¬¡ã®éšåã§ã¯ãæœè±¡çãªã€ãã³ãã¢ãã«ã®æ§ç¯ãšãéåæWebã¢ããªã±ãŒã·ã§ã³ã§äœ¿çšããçç±ãæ€èšããäºå®ã§ãã
æåŸãŸã§èªãã§ãããŠããããšãïŒ