ããã°ã©ãã³ã°ã®çŸå Žã¯çµ¶ããé²åããŠãããæ°ããæè¡ã®çµã¿åãããããžãã¹ããŒãœã³ã«æ°ããªãã£ã³ã¹ãçã¿åºããŠããŸããç¹ã«ãChatGPTã®é«åºŠãªäŒè©±æ©èœãšTypeScriptã®å ç¢ãªã³ãŒãã£ã³ã°äœéšãèåããããšã§ãã©ã®ãããªã¡ãªãããããã®ã§ããããïŒãã®èšäºã§ã¯ãChatGPTãšTypeScriptã®åºæ¬ããå§ããŠããã®çµã¿åãããããããå©ç¹ãããã«ã¯å®éã«ããããé§äœ¿ããã¢ããªéçºãŸã§ãç¶²çŸ çã«è§£èª¬ããŸããææ°ã®ããã°ã©ãã³ã°ãã¬ã³ããè¿œãããªãã«å¿ èŠãªãå®è·µããçè«ãããŒã«éžå®ã«è³ããŸã§ã®ç¥èãã³ã³ãã¯ãã«ãŸãšããŸããã
1. å°å ¥ïŒChatGPTãšTypeScriptã®çµã¿åããã®å¯èœæ§
ChatGPTãšTypeScriptãçµã¿åãããããšã¯ãé©æ°çãªãœãããŠã§ã¢éçºãããããå¯èœæ§ãç§ããŠããŸãããã®çµã¿åããã«ããéçºè ã¯ã匷åãªèªç¶èšèªåŠçèœåãšéçãªåä»ãã®å©ç¹ãåæã«äº«åã§ããããã«ãªããŸãããã®èšäºã§ã¯ãäž¡è ãçžä¹å¹æãçã¿åºãã次äžä»£ã®ããã°ã©ãã³ã°ãã©ãã€ã ãžãšå°ãå¯èœæ§ã«è¿«ããŸãã
çŸåšã®ãœãããŠã§ã¢éçºã®çŸå Žã§ã¯ãå¹çãšæ£ç¢ºæ§ãåžžã«æ±ããããŸããChatGPTã®èªç¶èšèªç解ãšçæèœåããããŠTypeScriptã®åã·ã¹ãã ãçµã¿åãããããšã¯ããããã®èŠæ±ãæºãããæ°ããããŒã«ãã¢ããªã±ãŒã·ã§ã³ã®éçºãžãšç¹ããããšã§ãããã
éçºè ãçŽé¢ããè€éãªåé¡ã解決ããããŒã«ãšããŠãäž¡è ã®çµã¿åããã¯é©åœçãªçããæäŸããå¯èœæ§ãç§ããŠããã®ã§ããã§ã¯ãå ·äœçã«ChatGPTãšTypeScriptãšã¯ã©ã®ãããªãã®ãªã®ã§ããããïŒ
1.1 ChatGPTãšã¯äœãïŒ
ChatGPTã¯ãèšèªç解ã®ããã®AIïŒäººå·¥ç¥èœïŒããŒã¹ã®ã¢ãã«ã§ããããã¯ãè±å¯ãªããŒã¿ã»ããããã¬ãŒãã³ã°ããŠåŸãããèªç¶èšèªçæèœåã«ããã人ã ãçåãããŒãã«å¿ãã察話ãæç« ãçæã§ããããã«èšèšãããŠããŸãã
ãã®å¿çšç¯å²ã¯åºããã«ã¹ã¿ããŒãµããŒããæè²ããŒã«ãã³ã³ãã³ãã¯ãªãšãŒã·ã§ã³ãªã©ãå€å²ã«ããããŸãããŸããChatGPTã¯ããã°ã©ããã³ãŒããããæ©ãç解ããå¹æçã«åé¡è§£æ±ºãè¡ãã®ã«ã圹ç«ã€ãšæåŸ ãããŠããŸãã
ChatGPTã®æè¡ãããã°ã©ãã³ã°ãšçµåããããšã§ãéçºããã»ã¹ãèªååãããããšã¯ãã¡ãããããçŽæçã§ç解ããããã³ãŒãã®çæãå¯èœã«ãªããŸããããã«ããããã°ã©ãã³ã°ã®æè²ãåŠç¿ã«ã倧ããªåœ±é¿ãåãŒãåŸãã®ã§ãã
1.2 TypeScriptã®åºæ¬
TypeScriptã¯ãJavaScriptã«éçåä»ããå ãããªãŒãã³ãœãŒã¹ã®ããã°ã©ãã³ã°èšèªã§ããéçºè ã«ãšã£ãŠã®å©ç¹ã¯ããšã©ãŒã®æ©æçºèŠãšã³ãŒãã®äºæž¬å¯èœæ§ãé«ããããšã«ãããŸãã
JavaScriptããã€ãããã¯åèšèªã§ããã®ã«å¯ŸããŠãTypeScriptã¯ã³ã³ãã€ã«æã«åã®æ€èšŒãè¡ããŸããããã«ãããã©ã³ã¿ã€ã ãšã©ãŒãæžããã倧èŠæš¡ãªã¢ããªã±ãŒã·ã§ã³éçºã«ãããŠãã³ãŒãã®å質ãšã¡ã³ããã³ã¹æ§ãé«ããŸãã
ããã«ãTypeScriptã¯JavaScriptã®ã¹ãŒããŒã»ããã§ãããããJavaScriptãåäœããããããç°å¢ã§TypeScriptãåäœããŸãããã®äºææ§ã«ãããæ¢åã®JavaScriptãããžã§ã¯ããžã®å°å ¥ãã¹ã ãŒãºã§ãããå€ãã®éçºè ã«ãšã£ãŠé åçãªéžæè¢ãšãªã£ãŠããŸãã
1.3 ChatGPTãšTypeScriptãçµã¿åãããã¡ãªãã
ChatGPTãšTypeScriptãçµã¿åãããããšã«ãããã³ã¡ã³ãçæãããã¥ã¡ã³ãäœæã®èªååãå¯èœã«ãªããŸãã深局åŠç¿ã«åºã¥ãChatGPTã®èœåã掻çšããããšã§ãç解ãã«ããã³ãŒãã®ã»ã¯ã·ã§ã³ã«å¯ŸããŠãããããããã解説ãã¬ã€ãã³ã¹ãä»äžã§ããã®ã§ãã
ãŸãããã£ããããããã³ãã³ãã©ã€ã³ããŒã«ãªã©ã®ã€ã³ã¿ã©ã¯ãã£ããªã¢ããªã±ãŒã·ã§ã³ãäœæããéã«ããTypeScriptã®å ç¢ãªåã·ã¹ãã ãšChatGPTã®èªç¶èšèªåŠçèœåãçµã¿åãããããšã§ããŠãŒã¶ãŒäœéšãæ ¹æ¬ããå€ããããšãã§ããŸãã
ãã®ãããªçµã¿åããã¯ãããå¹ççã§ãã¹ã®å°ãªãéçºããã»ã¹ãä¿ããæçµçã«ã¯ãããã¯ãã®å質åäžã«å¯äžããããšã«ãªãã§ãããã
1.4 ããã°ã©ãã³ã°ãã¬ã³ããšããŠã®ChatGPTåéçºã®å°é
ChatGPTããŒã¹ã®éçºææ³ã¯ãæå 端ã®ããã°ã©ãã³ã°ãã¬ã³ããšããŠæ³šç®ãéããŠããŸãããã®æµãã¯ãéçºè ããã人éã«è¿ã圢ã§ã³ã³ãã¥ãŒã¿ãšå¯Ÿè©±ã§ããããã«ãªããšããç¹ã§ããœãããŠã§ã¢éçºå šè¬ã«ãããŠå€é©ããããããŸãã
TypeScriptãšçµã¿åãããå ŽåãChatGPTã¯ã³ãŒãã®æå³ã解éããããããããã®æ°ããã€ã³ã¿ãŒãã§ãŒã¹ãšãªããéçºè ã¯ããã¯ãªãšã€ãã£ããªã³ãŒãã£ã³ã°ãè¡ãããšãã§ããŸããããã«ãããæ°ããªããã°ã©ãã³ã°ã¹ã¿ã€ã«ã確ç«ãããããšãäºæ³ãããŸãã
é«åºŠãªèªååãšåªãããšã©ãŒãã§ãã¯ãçµã¿åãããããšã§ãéçºè ã¯ããéèŠãªåé¡è§£æ±ºã«éäžããããšãã§ããããé«å質ãªãœãããŠã§ã¢ã®æäŸãå¯èœã«ãªãããšã§ããããChatGPTãšTypeScriptã®çµã¿åããã¯ãããã°ã©ãã³ã°ã®æªæ¥ã倧ããå·Šå³ãããã®ãšèããããŸãã
2. åºç€ããåŠã¶TypeScript
TypeScriptã¯JavaScriptã«åãå°å ¥ããããšã§ã倧èŠæš¡éçºããšã©ãŒã®æ©æçºèŠã«è²¢ç®ããããã°ã©ãã³ã°èšèªã§ãããã®èšäºã§ã¯ãTypeScriptã®åºæ¬ãåŠã³ã€ã€ãå®éã«ã³ãŒããæžãããã®ã¹ãã«ã¢ãããç®æããŸãã
TypeScriptã®åŠç¿ã¯ãç°å¢æ§ç¯ããå§ããŸããç°å¢ãæŽããããšã§ãå¹ççã«åŠç¿ãé²ããŠãããã§ãããããã®åŸãåºæ¬çãªåã®äœ¿ãæ¹ãé¢æ°ãšãªããžã§ã¯ãæåã®åºç€ã«ã€ããŠç解ãæ·±ããå®è·µçãªã³ãŒããæžãåãé€ãããšãéèŠã§ãã
ãããã説æããã¹ããããè¿œã£ãŠãTypeScriptã®é åãæ倧éã«åŒãåºããå¹ççãªããã°ã©ãã³ã°æè¡ã身ã«ã€ããŸãããã
2.1 TypeScriptã®ç°å¢æ§ç¯
TypeScriptã䜿çšããããã«ã¯ããŸãã¯éçºç°å¢ãæ§ç¯ããå¿ èŠããããŸããNode.jsãã€ã³ã¹ããŒã«ãããç°å¢ãåºæ¬ãšãªããnpmãyarnã䜿ã£ãŠTypeScriptã®ã³ã³ãã€ã©ãã€ã³ã¹ããŒã«ããŸãã
TypeScriptã®ã³ã³ãã€ã©ã¯ãã³ãã³ãã©ã€ã³ãåçš®IDEããšãã£ã¿ã®ãã©ã°ã€ã³ãä»ããŠå©çšããããšãã§ããŸããããã«ãããTypeScriptã®ã³ãŒããJavaScriptã«ã³ã³ãã€ã«ãããã©ãŠã¶ãNode.jsç°å¢ã§å®è¡ã§ããããã«ãªããŸãã
ãŸããtsconfig.jsonãã¡ã€ã«ãäœæããŠãããžã§ã¯ãã®èšå®ãè¡ãããšãéèŠã§ãããã®ãã¡ã€ã«ã«ã¯ã³ã³ãã€ã«ãªãã·ã§ã³ã察象ãšãªããã¡ã€ã«ãªã©ãå®çŸ©ãããTypeScriptãããžã§ã¯ãã®æ¯ãèããå¶åŸ¡ããŸãã
2.2 åºæ¬çãªåã®å©çšæ¹æ³
TypeScriptã®å€§ããªç¹åŸŽã®äžã€ããåãã®æŠå¿µã§ããå€æ°ãé¢æ°ã®åŒæ°ãæ»ãå€ã«æ確ãªåãå®çŸ©ããããšã§ãæå³ããªãå€ã®å²ãåœãŠãé²ããã³ãŒãã®å®å šæ§ãé«ããŸãã
åºæ¬çãªåã«ã¯ãnumberãstringãbooleanãnullãundefinedããããŠanyãªã©ããããŸãããããã®åãé©åã«å©çšããããšã§ãå¹ççãã€ãã°ã®å°ãªãã³ãŒããæžãããšãå¯èœã«ãªããŸãã
ããã«ãé åãã¿ãã«ãåæåãã¢ã³ã(ïŒ)ããªã¢(|)ã䜿çšãããŠããªã³åãªã©ãJavaScriptã«ã¯ãªãé«åºŠãªåãå©çšã§ããŸããããããåŠã¶ããšã§ãTypeScriptã®åã·ã¹ãã ãããæ·±ãç解ãã匷åãªã³ãŒããèšè¿°ããããšãã§ããŸãã
2.3 é¢æ°ãšãªããžã§ã¯ãæåã®åºç€
é¢æ°ã¯ããã°ã©ã å ã§ãã䜿çšãããæ§é ã®äžã€ã§ããTypeScriptã§ã¯ãé¢æ°ã®ãã©ã¡ãŒã¿ãæ»ãå€ã«åãä»ããããšãã§ããã³ãŒãã®ä¿¡é Œæ§ãé«ããŸãããŸãããªãã·ã§ãã«ãã©ã¡ãŒã¿ãããã©ã«ããã©ã¡ãŒã¿ãæ®äœåŒæ°ãªã©ã«ã察å¿ããŠããŸãã
ãªããžã§ã¯ãæåã®æŠå¿µãTypeScriptã§ã¯éèŠã§ããã¯ã©ã¹ãã€ã³ã¿ãã§ãŒã¹ãç¶æ¿ãã¢ã¯ã»ã¹ä¿®é£Ÿåãªã©ããªããžã§ã¯ãæåãæ¯ããæ©èœãå å®ããŠããŸããããã«ãããããæ§é åãããã³ãŒããæžãããšãã§ããããã«ãªããŸãã
é¢æ°ãã¯ã©ã¹ãé©åã«äœ¿ãããªãããšã§ãåå©çšæ§ãã¡ã³ããã³ã¹æ§ã®é«ãã³ãŒããäœæããããšãã§ããŸããTypeScriptãçšããé¢æ°ãšãªããžã§ã¯ãæåã®åºç€ã«ã€ããŠç解ãæ·±ããå¹æçãªããã°ã©ãã³ã°ãå¿ãããŸãããã
2.4 å®è·µçãªTypeScriptã³ãŒãã®æžãæ¹
å®è·µçãªTypeScriptã³ãŒããæžãããã«ã¯ãåŠãã ç¥èãå®éã®ãããžã§ã¯ãã«å¿çšããããšãæ±ããããŸããåã®åŒ·å¶åã掻ãããå®å šã§èªã¿ãããã³ãŒããå¿ãããããšãéèŠã§ãã
é«åºŠãªåã®ç¹æ§ããžã§ããªãã¯ã¹ã䜿çšããããšã§ãããæè»ãã€åå©çšå¯èœãªã³ãŒããäœæããããšãå¯èœã§ãããŸããããè€éãªåå®çŸ©ããã³ã¬ãŒã¿ã䜿ãããªãããšã«ãããå°éæ§ã®é«ããœãããŠã§ã¢éçºã«ææŠã§ããŸãã
æåŸã«ãå®éã«ã¢ããªã±ãŒã·ã§ã³ãéçºããªããããšã©ãŒãã³ããªã³ã°ãéåæåŠçãã¢ãžã¥ãŒã«ã®ç®¡çãªã©å®è·µã«å³ããã¹ãã«ã身ã«çããããšã倧åã§ããTypeScriptã®æ©èœãé§äœ¿ããã¢ãã³ãªã¢ããªã±ãŒã·ã§ã³éçºã«ææŠããŸãããã
3. ChatGPTããã°ã©ãã³ã°ã®åºç€
ChatGPTã¯ãèªç¶èšèªåŠçãè¡ã匷åãªããŒã«ã§ããå€ãã®éçºè ãChatGPTã掻çšãããŠãŒã¶ãŒã®è³ªåã«å¯Ÿããåæ»ãªåçããæ§ã ãªããã¹ãããŒã¹ã®ã¿ã¹ã¯ãèªååããã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããŠããŸãããã®èšäºã§ã¯ãChatGPTããã°ã©ãã³ã°ã®åºç€ãšTypeScriptãå©çšããå®è£ ã«ã€ããŠè§£èª¬ããŸãã
TypeScriptã¯ãJavaScriptã®ã¹ãŒããŒã»ãããšããŠéçºãããŠãããåå®å šæ§ãã¯ã©ã¹ããŒã¹ã®ãªããžã§ã¯ãæåãªã©ã®ç¹åŸŽãæã£ãŠããŸããããã«ããã倧èŠæš¡ãªã¢ããªã±ãŒã·ã§ã³ã®éçºã容æã«ãªããChatGPTã®ãããªAPIãšã®ã€ã³ã¿ã©ã¯ã·ã§ã³ã«ãããŠãå ç¢ãªéçºãå¯èœãšãªããŸãã
ä»åŸã¯ãæ¬èšäºã§æ瀺ããæ¹æ³è«ãçšããŠãTypeScriptã§ã®ChatGPTããã°ã©ãã³ã°ã®åºç€ç¥èãç¿åŸããç°¡æœãã€å¹æçã«ãããžã§ã¯ããé²ããããšãã§ããã§ãããã
3.1 ChatGPT APIã®æŠèŠ
ChatGPT APIã¯ãéçºè ãç¬èªã®ã¢ããªã±ãŒã·ã§ã³ã«GPT-3ã¢ãã«ãç°¡åã«çµ±åã§ããããã«èšèšãããŠããŸããHTTPãªã¯ãšã¹ããä»ããŠAPIã«ã¢ã¯ã»ã¹ããã³ãã³ãã質åãéä¿¡ããŠããªã¢ã«ã¿ã€ã ã§å¿çãåãåãããšãå¯èœã§ãã
APIã掻çšããåã«ã¯ãOpenAIã®äœ¿çšèŠçŽã«åæããAPIããŒãååŸããå¿ èŠããããŸããä¿è·ãããAPIããŒã¯ãã¢ããªã±ãŒã·ã§ã³ãèªèšŒãééãããµãŒããŒãšå®å šã«éä¿¡ã§ããããã«ããããã®éèŠãªæ段ã§ãã
ãŸããAPIã¯ãªã¯ãšã¹ãã®ã¬ãŒãå¶éããã¥ãŒã€ã³ã°ã¡ã«ããºã ãæäŸããŠãããããã«ããé«ããã©ãã£ãã¯ç¶æ³äžã§ããå šãŠã®ãŠãŒã¶ãŒãäžè²«ãããµãŒãã¹ã享åã§ããããã«ãªã£ãŠããŸãã
3.2 APIãšã®ããåããããTypeScriptã®å®è£ ãã¿ãŒã³
TypeScriptãçšããChatGPT APIãšã®ã€ã³ã¿ã©ã¯ã·ã§ã³ã«ã¯ãè€æ°ã®å®è£ ãã¿ãŒã³ãååšããŸããæãäžè¬çãªã®ã¯ãHTTPã¯ã©ã€ã¢ã³ãã©ã€ãã©ãªãå©çšããæ¹æ³ã§ããäŸãã°ãaxiosãããfetchãã¯ãTypeScriptãšçžæ§ãè¯ããAPIéä¿¡ã«åºãçšããããŠããŸãã
ãããã®ã©ã€ãã©ãªã䜿çšããããšã§ãéçºè ã¯ãªã¯ãšã¹ããã©ã¡ãŒã¿ãèšå®ãAPIãšã³ããã€ã³ãã«éä¿¡ããããšã§ãChatGPTããã®å¿çãPromiseãªããžã§ã¯ããšããŠåãåãããšãã§ããŸããTypeScriptã®åå®çŸ©æ©èœã䜿çšããããšã§ãAPIããè¿ãããããŒã¿ã®åœ¢ç¶ãæ瀺çã«æ±ãããšãã§ããéçºã®çç£æ§ãšå®å šæ§ãããã«åäžãããããšãå¯èœã§ãã
ãŸããäŸå€åŠçãé©åã«è¡ãããšãéèŠã§ããAPIããã®ãšã©ãŒã¬ã¹ãã³ã¹ããããã¯ãŒã¯é害ã«åããŠãtry-catchãããã¯ãçšããŠãšã©ãŒãã³ããªã³ã°ãè¡ãããšãæšå¥šãããŸãã
3.3 éåæåŠçã®ç解ãšé©çš
ChatGPT APIãšã®éä¿¡ã¯éåæçã«è¡ãããŸããTypeScriptã«ãããéåæåŠçã®ç解ã¯ãAPIã䜿ã£ãã¢ããªã±ãŒã·ã§ã³éçºã«ãããŠéåžžã«éèŠã§ããasync/awaitæ§æã䜿çšããããšã§ãéåæã³ãŒããç°¡æœãã€çŽæçã«èšè¿°ããããšãã§ããŸãã
éåæé¢æ°ãå®çŸ©ããããšã«ãããPromiseãã§ãŒã³ã䜿çšããåŸæ¥ã®ã³ãŒã«ããã¯æ¹åŒãããèªã¿ãããã³ãŒããäœæã§ããŸããããã«ãã£ãŠãAPIãªã¯ãšã¹ããé åºç«ãŠãŠæ£ç¢ºã«åŠçããããšãå¯èœã«ãªããã³ãŒãããŒã¹ãæŽçããä¿å®ãããããªããŸãã
ããããéåæåŠçã䜿çšããéã¯ãäŸå€ããšã©ãŒãæ£ãããã³ããªã³ã°ãããŠããããšã確èªããå¿ èŠããããŸããasync/awaitãå©çšããããšã§çºçãããšã©ãŒã¯try-catchæ§æã§é©åã«åŠçããã¢ããªã±ãŒã·ã§ã³ã®ããã¹ãæ§ãä¿æããããšã倧åã§ãã
3.4 ã€ã³ã¿ã©ã¯ãã£ããªChatGPTã¢ããªã±ãŒã·ã§ã³ã®æ§ç¯
ã€ã³ã¿ã©ã¯ãã£ããªChatGPTã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããéã«ã¯ããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ïŒUIïŒãšããã¯ãšã³ãã®å å®ãéµãšãªããŸããTypeScriptã掻çšããããšã§ãããã³ããšã³ãã®ã³ã³ããŒãã³ããããã¯ãšã³ãã®APIãªã¯ãšã¹ããåå®å šãã€ç®¡çãããã圢ã§äœæããããšãã§ããŸãã
ããã³ããšã³ãã§ã¯ãReactãAngularã®ãããªãã¬ãŒã ã¯ãŒã¯ãšçµã¿åãããããšã§ããŠãŒã¶ãŒã®å ¥åãåãä»ããAPIããã®å¿çãåçã«è¡šç€ºããã€ã³ã¿ã©ã¯ãã£ããªUIãäœæããããšãå¯èœã§ããããã¯ãšã³ãã§ã¯ãExpress.jsã®ãããªNode.jsãã¬ãŒã ã¯ãŒã¯ãå©çšããŠãå®å šãªAPIãšã³ããã€ã³ããå±éããChatGPTãšããã³ããšã³ãã®éã®ä»²ä»åœ¹ãæãããŸãã
ã¢ããªã±ãŒã·ã§ã³ã®æåã¯ããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã«å€§ããäŸåããŠããŸãããã®ãããé©åãªãšã©ãŒãã³ããªã³ã°ãå¹ççãªéåæåŠçããããŠãªãããªããã³ããšã³ããã¶ã€ã³ãçµã¿åãããããšããã€ã³ã¿ã©ã¯ãã£ããªã¢ããªã±ãŒã·ã§ã³æ§ç¯ã®ããã®éèŠãªã¹ããããšãªããŸãã
4. å¿çšç·šïŒTypeScriptã§ã«ã¹ã¿ã ChatGPTã¢ããªã±ãŒã·ã§ã³ãéçºãã
TypeScriptã¯JavaScriptã«éçåä»ããããããããšã©ãŒãæžå°ããå®å šãªã³ãŒãã£ã³ã°ãå¯èœã«ããŸãããã®èšäºã§ã¯ãTypeScriptã䜿çšããŠChatGPTã®ãããªã«ã¹ã¿ã ã¢ããªã±ãŒã·ã§ã³ãéçºããéã®é«åºŠãªãã¯ããã¯ã«ã€ããŠè§£èª¬ããŸããç¹ã«ãã«ã¹ã¿ã å¿çã®çæããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ã®çµ±åãå€éšAPIãšã®é£æºãããã«ã¯ãããã€ãšããã©ãŒãã³ã¹ã®æé©åãŸã§ãå¹ åºããããã¯ãã«ããŒããŸãã
4.1 ã«ã¹ã¿ã å¿çã®æ§ç¯æ¹æ³
ã«ã¹ã¿ã ChatGPTã¢ããªã±ãŒã·ã§ã³ã«ãããŠã¯ããŠãŒã¶ãŒã®å ¥åã«å¯Ÿããèªååãããå¿çãçæããããã®è€éãªããžãã¯ãå¿ èŠã§ããTypeScriptã䜿ããåå®å šãã€ã¹ã±ãŒã©ãã«ãªæ¹æ³ã§ãã®æ©èœãæ§ç¯ããã«ã¯ããŸãé©åãªã€ã³ã¿ãŒãã§ãŒã¹ãšåãå®çŸ©ãããããã掻çšããŠå¿ççææ©æ§ãèšèšããå¿ èŠããããŸãã
ãšã©ãŒãã³ããªã³ã°ãéèŠãªèŠçŽ ã§ãããŠãŒã¶ãŒã®ã¯ãšãªã«å¯ŸããŠé©åãªãã£ãŒãããã¯ãæäŸããæ³å®å€ã®å ¥åããã£ãå Žåã«ã¯æ確ãªã¬ã€ãã³ã¹ããŠãŒã¶ãŒã«æäŸããããšãããŒãšãªããŸããTypeScriptã®å©ç¹ãçãããŠãäºæãã¬å ¥åã«å¯ŸããŠããã°ã©ã ãå ç¢ã«åäœãããã现å¿ã®æ³šæãæããŸãããã
ãããŠãã«ã¹ã¿ã å¿çã®çºå±æ§ãèããæ¡åŒµå¯èœãªæ§é ãæãããããšã¯éåžžã«éèŠã§ããå°æ¥çã«å¿çã®ããªãšãŒã·ã§ã³ãå¢ãããããããªããšããç¹ã念é ã«çœ®ãã€ã€ãã¢ãžã¥ãŒã«åŒã®èšèšãæ¡çšãããšãã¡ã³ããã³ã¹æ§ãé«ããæ¹åã容æãªã·ã¹ãã ãæ§ç¯ã§ããŸãã
4.2 ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ã®çµ±å
å¿çã®ããžãã¯ãå®æãããã次ã¯ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹(UI)ã®çµ±åã«ç§»ããŸããã«ã¹ã¿ã ChatGPTã¢ããªã§ã¯ãå ¥åãåãåãçµæã衚瀺ããããã®äœ¿ããããUIãäžå¯æ¬ ã§ããTypeScriptãšäžç·ã«ReactãVue.jsã®ãããªãã¬ãŒã ã¯ãŒã¯ã䜿çšããåå®å šãªã³ã³ããŒãã³ãèšèšãå®çŸããããšã§ãå®çšçã§çŽæçãªUIãæ§ç¯ã§ããŸãã
ã¢ãã€ã«ãã¡ãŒã¹ãã®ã¢ãããŒããæ¡çšããããšã§ãããŸããŸãªããã€ã¹ã§ã®å©çšã«å¯Ÿå¿ããã¬ã¹ãã³ã·ããªãã¶ã€ã³ãå®çŸããå¿ èŠããããŸããå©çšè ã®äŸ¿å®ãèããã¢ã¯ã»ã·ããªãã£å¯Ÿçãåãå ¥ãããã¹ãŠã®ãŠãŒã¶ãŒãå¿«é©ã«äœ¿çšã§ãããã工倫ããŸãããã
ã€ã³ã¿ã©ã¯ã·ã§ã³ãã¶ã€ã³ã«ãããŠããå¿çé床ããŠãŒã¶ãŒã®ã¢ã¯ã·ã§ã³ã«å¯ŸããèŠèŠçãã£ãŒãããã¯ãæ±ããããŸããTypeScriptãå©çšããŠãç¶æ 管çãå¹æçã«è¡ããUIã®ããã©ãŒãã³ã¹ãæé©åããäºãéèŠã§ãã
4.3 å€éšAPIãšã®é£æº
ã«ã¹ã¿ã ChatGPTã¢ããªã±ãŒã·ã§ã³ã§å€éšã®ããŒã¿ã«ã¢ã¯ã»ã¹ãããããµãŒãããŒãã£ã®ãµãŒãã¹ãçµ±åãããããå Žåã¯ãå€éšAPIãšã®é£æºãæ¬ ãããŸãããTypeScriptã¯åå®çŸ©ãéããŠAPIã®ã¬ã¹ãã³ã¹ãæ瀺çã«æ±ãããšãã§ãããããAPIãšã®ã€ã³ãã°ã¬ãŒã·ã§ã³ãå®å šãã€å¹ççã«è¡ãããšãã§ããŸãã
å®å šãªéä¿¡ã®ããã«ã¯ãHTTPSéä¿¡ãè¡ããå¿ èŠã«å¿ããŠèªèšŒããŒã¯ã³ã®ç®¡çããªãã¬ãã·ã¥ããŒã¯ã³ã®ããžãã¯ãå®è£ ããããšãéèŠã§ããAPIããã®ããŒã¿ãé©åã«åãæ±ãããšã©ãŒåŠçãäžå¯§ã«è¡ãããšã§ãå®å®ãããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãæäŸããŸãããã
ãŸãããã£ãã·ã³ã°æŠç¥ãèæ ®ããããšã§ãå€éšAPIã®ã¬ã¹ãã³ã¹ãå¹ççã«ç®¡çããã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ãåäžãããããšãå¯èœã§ããTypeScriptã®åŒ·åãªåã·ã¹ãã ãå©çšããŠãAPIå¿çã®åãå³æ Œã«å®çŸ©ããäºæããªãããŒã¿æ§é ã«å¯Ÿå¿ã§ããããäœããŸãããã
4.4 ã¢ããªã±ãŒã·ã§ã³ã®ãããã€ãšããã©ãŒãã³ã¹æé©å
éçºãçµäºããã«ã¹ã¿ã ChatGPTã¢ããªã±ãŒã·ã§ã³ãå®éã«ãŠãŒã¶ãŒã«æäŸããããã«ã¯ãé©åãªãããã€æŠç¥ãç«ãŠãå¿ èŠããããŸããã¯ã©ãŠããããã€ãããµãŒãã¬ã¹ãã©ãããã©ãŒã ãå©çšããããšã§ãã¹ã±ãŒã©ããªãã£ãšã³ã¹ãå¹çã®äž¡ç«ãç®æããŸãããã
CI/CDïŒç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³/ç¶ç¶çããªããªãŒïŒã®ãã©ã¯ãã£ã¹ãæ¡ãå ¥ããããšã§ãæ°ããæ©èœã®è¿œå ããã°ä¿®æ£ãè¿ éãã€å®å šã«ãããã€ããããšãã§ããŸããTypeScriptã®åãã§ãã¯æ©èœãçµã¿åãããããšã§ããªãªãŒã¹åã®ãšã©ãŒæ€åºçãé«ããããšãã§ããã§ãããã
æåŸã«ãããã©ãŒãã³ã¹ã®ç£èŠã¯ç¶ç¶çãªããã»ã¹ã§ããããŠãŒã¶ãŒããã®ãã£ãŒãããã¯ãã¢ããªã±ãŒã·ã§ã³ã®äœ¿çšç¶æ³ãå ã«ãå®æçãªããã©ãŒãã³ã¹ãã¥ãŒãã³ã°ãå¿ èŠã§ããTypeScriptã®åæ å ±ã掻ãããŠãäžèŠãªã¬ã³ããªã³ã°ãã¡ã¢ãªãªãŒã¯ãé¿ããæé©åãè¡ããã¹ã ãŒãºãªãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã確ä¿ããŸãããã
5. å®è·µã±ãŒã¹ã¹ã¿ãã£
5.1 eã³ããŒã¹åãã®èªåã«ã¹ã¿ããŒãµããŒã
eã³ããŒã¹åéã§ã®ç«¶äºãæ¿åããäžã顧客æºè¶³ãåäžãããããã®èªåã«ã¹ã¿ããŒãµããŒãã·ã¹ãã ãéèŠã«ãªã£ãŠããŸããChatGPTã䜿çšããTypeScriptããã°ã©ãã³ã°ã¯ããã®ããŒãºã«å¿ããããã®åŒ·åãªããŒã«ãšãªããŸãã顧客ããã®åãåããããªã¢ã«ã¿ã€ã ã§åŠçããå³åº§ã«é©åãªåçãæäŸããããšãã§ãããµããŒãããŒã ã®è² æ ã軜æžããããšãã§ããŸãã
å ·äœçã«ã¯ãTypeScriptã䜿çšããŠãèªç¶èšèªåŠçãå¿çšãã顧客ã®è³ªåãç解ããããŒã¿ããŒã¹ããé¢é£æ å ±ãæœåºããã¢ã«ãŽãªãºã ãå®è£ ããããšãå¯èœã§ããããã«ããã顧客ã¯24æé365æ¥ãæéãåãããµããŒããåããããšãã§ããããã«ãªããŸãã
ãŸãããããã®èªååã·ã¹ãã ã¯ã顧客ã®è¡åã奜ã¿ãåŠç¿ããæ©èœãåããããŒãœãã©ã€ãºãããäœéšãæäŸããããšãã§ããŸãããããã®é²æ©ã¯ãeã³ããŒã¹ããžãã¹ã«ããã顧客ã®å¿ èª å¿ãšå£²äžã®åäžã«çŽçµããŸãã
5.2 æè²åéã§ã®ã€ã³ã¿ã©ã¯ãã£ãåŠç¿ããŒã«
æè²æè¡ã®é²æ©ã«äŒŽããã€ã³ã¿ã©ã¯ãã£ããªåŠç¿ããŒã«ããŸããŸãéèŠã«ãªã£ãŠããŸãããChatGPTãå©çšããTypeScriptããã°ã©ãã³ã°ã«ããéçºãããåŠç¿ãã©ãããã©ãŒã ã«ã¯ãçåŸãç©æ¥µçã«åŠç¿ã«åå ã§ããæ©èœãåãã£ãŠããŸããäŸãã°ã質åã«å¯Ÿãããã£ãŒãããã¯ããªã¢ã«ã¿ã€ã ã§åãåã£ãããåŠç¿ã®é²æã«å¿ãã課é¡ãèªåã§æ瀺ããããããŸãã
ãããã®ããŒã«ã¯ãåŠçãèªèº«ã®ããŒã¹ã§åŠç¿ãé²ããç解ãäžååãªéšåã«éç¹ã眮ããŠåŠç¿ããããšãå©ããŸãããŸããæåž«ã¯åŠçã®é²æç¶æ³ãææ¡ãããããªããåå¥ã«æé©åããããµããŒããæäŸããããšãå¯èœã§ãã
æè²çŸå Žã§ã¯åã ã®ããŒãºã«å¯Ÿå¿ããã«ã¹ã¿ãã€ãºãæ±ããããTypeScriptãšChatGPTã®çµã¿åããã¯ãã®ç®çãéæããããã§æå¹ãªæ段ãšãªããŸãããã®ããã«ãããã°ã©ãã³ã°ã¯æè²ã®è³ªãé«ããããã®éµãšãªãæè¡ã§ãã
5.3 ãšã³ã¿ãŒãã©ã€ãºããŒã¿åæãšã¬ããŒãã£ã³ã°
ããã°ããŒã¿ã®æ代ã«ãã£ãŠããšã³ã¿ãŒãã©ã€ãºã¬ãã«ã§ã®ããŒã¿åæãšã¬ããŒãã£ã³ã°ã¯æ¥åã®å¹çåãšææ決å®ã®ç²ŸåºŠãé«ããããã«å¿ èŠäžå¯æ¬ ã§ããTypeScriptãçšããChatGPTã®ããã°ã©ãã³ã°ã掻çšããããšã§ãäŒæ¥ã¯èšå€§ãªéã®ããŒã¿ãå¹ççã«åŠçããæŽå¯ã«å¯ãã ã¬ããŒããçæããããšãå¯èœã«ãªããŸãã
ã€ã³ã¿ã©ã¯ãã£ããªããã·ã¥ããŒããããžã¥ã¢ã©ã€ãŒãŒã·ã§ã³ããŒã«ã¯ãå€æ§ãªããŒã¿ãœãŒã¹ããåŸãããæ å ±ãçµ±åããåããããã圢ã§æäŸããæ©èœãåããŠããŸããããã«ãããçµå¶é£ãããŒã¿ã¢ããªã¹ãã¯è¿ éã«ããŒã¿é§åã®ææ決å®ãè¡ãããšãã§ããŸãã
ãŸããChatGPTã掻çšããèªåã¬ããŒãçææ©èœã¯ãå®æçãªã¬ããŒãã£ã³ã°äœæ¥ã®æéãçãããªã¢ã«ã¿ã€ã ã§ã®ããžãã¹ã€ã³ããªãžã§ã³ã¹ãå®çŸããŸãããããã®ããŒã«ã¯ãäŒæ¥ãå»ã ãšå€åããåžå Žç°å¢ãžç確ã«å¯Ÿå¿ããããã«äžå¯æ¬ ãªãã®ãšãªã£ãŠããŸãã
5.4 ã¹ã¿ãŒãã¢ããã«ãããã€ãããŒã·ã§ã³ã®äŸ
æ°èäŒæ¥ãåžå Žã«æ°ãã䟡å€ãæäŸããããã«ã¯ãé©æ°çãªæè¡ãçšããå¿ èŠããããŸããTypeScriptã§ããã°ã©ãã³ã°ãããChatGPTã¯ãã¹ã¿ãŒãã¢ããã«ãšã£ãŠéåžžã«é åçãªæè¡ã§ããäŸãã°ããŠãŒã¶ãŒã®è¡åãåæãããã®ããŒã¿ãåºã«è£œåã®æ¹åãæ°ããªæ©èœã®éçºãè¡ãããšãã§ããŸãã
ããã«ããã顧客ã«ããå¯æ¥ã«åããããšã¯ã¹ããªãšã³ã¹ãæäŸããããšãå¯èœã«ãªããã¹ã¿ãŒãã¢ããã¯ä»ç€Ÿãšã®å·®å¥åãå³ãããšãã§ããŸãããŸããåæã®é ãã顧客ãšã®é¢ä¿ãæ·±ããç¶ç¶çãªãã£ãŒãããã¯ãåãå ¥ããããšã§ã補åããµãŒãã¹ã磚ãäžããããšãã§ããŸãã
ãããŠãChatGPTã掻çšããã«ã¹ã¿ããŒãµãŒãã¹ã®èªååãåžå ŽåæããŒã«ã®éçºã¯ããªãœãŒã¹ãéãããŠããæ°èäŒæ¥ã«ãšã£ãŠã³ã¹ãåæžãšå¹çåã«å€§ããå¯äžããŸããçµæãšããŠãã¹ã¿ãŒãã¢ããã¯ããè¿ éã«åžå Žã®ããŒãºã«å¿ããæé·ããŠããããšãã§ããŸãã
6. æé©ãªéçºç°å¢ã®æ§ç¯ãšããŒã«
ããã°ã©ãã³ã°ã«ãããŠãçç£æ§ãšã³ãŒãã®å質ãé«ããããã«ã¯ãéçºç°å¢ã®èšå®ãéåžžã«éèŠã§ããTypeScriptã«ããéçºäœæ¥ãé²ããäžã§ãæé©ãªããŒã«ãšãã©ã¯ãã£ã¹ã®æ¡çšãå¹ççãªã³ãŒãäœæãå®çŸããŸãã
ãããã玹ä»ããå 容ã¯ãåå¿è ããäžçŽè ãŸã§å¹ åºãé©çšå¯èœãªéçºç°å¢ã®æ§ç¯æ³ã§ããå©çšããããŒã«ãéžæããå°å ¥ããããšã§ãTypeScriptãããžã§ã¯ãã®äžæ žãšãªãå®è¡å¯èœãªããŒã¹ã©ã€ã³ãäœãäžããŸãã
ç®æšã¯ãå¿«é©ãªã³ãŒãã£ã³ã°ç°å¢ãæŽãããããã°ããã¹ããããŒã ã§ã®ååäœæ¥ãã¹ã ãŒãºã«å±éããããã®ãšã³ã·ã¹ãã ãç¯ãããšã§ãã詳现ãªèšå®æ¹æ³ãéžå®åºæºã«å ããŠãæ¥ã ã®éçºããã»ã¹ããµããŒããããã³ããæäŸããŸãã
6.1 TypeScriptéçºã§ã®IDEã®éžæ
IDEïŒçµ±åéçºç°å¢ïŒã®éžæã¯ãTypeScriptéçºã®å¿«é©ãã«çŽçµããŸããåªããIDEã¯ãã³ãŒãè£å®ããªãã¡ã¯ã¿ãªã³ã°ãã·ã³ã¿ãã¯ã¹ãã€ã©ã€ããªã©ãæäŸããéçºè ã®æéãšåŽåãç¯çŽããŸãã
åžå Žã«ã¯ãVisual Studio CodeãWebStormãAtomãªã©ãæ§ã ãªIDEãååšããŸãããTypeScriptããµããŒããããã©ã°ã€ã³ãå©çšå¯èœã§ãã³ãã¥ããã£ã«ããå¹ åºããµããŒããåŸãããIDEãéžã¶ããšãèèŠã§ãã
ç¹ã«Visual Studio Codeã¯ããã®è»œéããšå€æ©èœãããå€ãã®TypeScriptéçºè ã«æ¯æãããŠããŸããæ¡åŒµæ§ãé«ããç¡æ°ã®æ¡åŒµæ©èœãéããŠã«ã¹ã¿ãã€ãºããããšãã§ããŸãã
6.2 ãããã°ãšãã¹ãã®ããã®ããŒã«
ãã°ã®å°ãªãé«å質ãªãœãããŠã§ã¢ãæäŸããããã«ã¯ããããã°ãšãã¹ããäžå¯æ¬ ã§ããTypeScriptãããžã§ã¯ãã§ã¯ããããã°ã«ã¯ãœãŒã¹ãããã掻çšããå®è¡ãããJavaScriptãšTypeScriptãœãŒã¹ã³ãŒããšã®éã§ç°¡åã«çžäºåç §ãã§ããããã«ããŸãã
ãã¹ãã«é¢ããŠã¯ãJestãMochaãšãã£ããã¬ãŒã ã¯ãŒã¯ãå©çšããŠãåäœãã¹ããçµ±åãã¹ããè¡ãããšãäžè¬çã§ãããããã®ããŒã«ã¯ãTypeScriptã§ã®ã¢ãµãŒã·ã§ã³ããã¹ãã±ãŒã¹ã®èšè¿°ã容æã«ãããã¹ãèªååã«ã圹ç«ã¡ãŸãã
ãŸããç¶ç¶çãªãã¹ããå¯èœã«ããCIïŒContinuous IntegrationïŒãµãŒãã¹ãå°å ¥ããããšã§ãã³ãŒãã®å€æŽããšã«ãã¹ããèªåã§å®è¡ããéçºããã»ã¹ã«å®å®æ§ããããããŸãã
6.3 ã³ãŒãå質ãä¿ã€ããã®ãã¹ããã©ã¯ãã£ã¹
ã³ãŒãå質ãç¶æããããã«ã¯ãå®ããããã³ãŒãã£ã³ã°èŠçŽã«åŸããäžè²«æ§ãä¿ã€ããšãéèŠã§ããTypeScriptã§ã¯ãTSLintã®ãããªéçã³ãŒã解æããŒã«ã䜿ã£ãŠãã³ãŒãã¹ã¿ã€ã«ãæœåšçãªãšã©ãŒããã§ãã¯ãããšè¯ãã§ãããã
ã³ãŒãã¬ãã¥ãŒã¯ãããŒã éçºã«ãããå質ç¶æã®ããã®éèŠãªã¹ãããã§ããä»ã®éçºè ãæžããã³ãŒããã¬ãã¥ãŒããããšã§ããã°ãæ©æã«çºèŠãããã¹ããã©ã¯ãã£ã¹ã®å ±æãå¯èœã«ãªããŸãã
äžèšã®ãã©ã¯ãã£ã¹ã«å ããDRYïŒDon’t Repeat YourselfïŒååãéµå®ããããšãé©åãªæœè±¡åãè¡ãããšã§ãä¿å®æ§ãåå©çšæ§ã®é«ãã³ãŒããå®çŸã§ããŸãã
6.4 å¹æçãªããŒãžã§ã³ç®¡çãšã³ã©ãã¬ãŒã·ã§ã³
ããŒãžã§ã³ç®¡çã·ã¹ãã ã¯ãè€æ°äººã§ã®éçºäœæ¥ã«ã¯äžå¯æ¬ ã§ããGitã¯ããã®åŒ·åãªæ©èœãšã·ã³ãã«ãªæäœæ§ã§ãäžçäžã®å€ãã®éçºè ãããŒã ã«ãã£ãŠå©çšãããŠããŸãã
GitHubãBitbucketãGitLabãšãã£ããµãŒãã¹ãå©çšãããšããªã¢ãŒããªããžããªã®ãã¹ãã£ã³ã°ã¯ãã¡ãããIssueã®è¿œè·¡ããã«ãªã¯ãšã¹ãã«ããå€æŽææ¡ãã³ãŒãã¬ãã¥ãŒãªã©ãããŒã ã§ã®ã³ã©ãã¬ãŒã·ã§ã³ãã¹ã ãŒãºã«è¡ãããšãã§ããŸãã
ããŒã ã§ã®äœæ¥ãå¹çåããããã«ã¯ãæ確ãªã³ãã¥ãã±ãŒã·ã§ã³ãšå ±éã®ç®æšèªèãå¿ èŠã§ããé©åãªã¯ãŒã¯ãããŒã確ç«ããããšã§ãã³ãŒãã®å質ãä¿ã¡ãªãããè¿ éãªéçºãµã€ã¯ã«ãå®çŸããããšãå¯èœãšãªããŸãã
7. ãŸãšã
ChatGPTãšTypeScriptãé§äœ¿ããããšã§ãããžãã¹ããŒãœã³ã«æ°ããªäŸ¡å€ããããããéçºã®å¹çåãå質åäžãæåŸ ãããŸããTypeScriptãæã€åå®å šæ§ãéçºããŒã«ã®å å®ã¯ãChatGPTããã°ã©ãã³ã°ã®æ£ç¢ºæ§ãé«ããèŠçŽ ã§ããChatGPTãå©çšããã°ãææ°ã®AIæè¡ã掻çšããã€ã³ã¿ã©ã¯ãã£ããªã¢ããªã±ãŒã·ã§ã³éçºãå¯èœã«ãªããŸãããŸããTypeScriptã®ãã£ãããšããåºç€ãããã°ãAPIçµ±åãéåæåŠçãšãã£ãé«åºŠãªããŒãã«ã察å¿ã§ããããã«ãªããŸããã«ã¹ã¿ã ChatGPTã¢ããªã±ãŒã·ã§ã³ã®éçºã§ã¯ãŠãŒã¶ãŒã®ããŒãºã«å¿ãã现ãã調æŽãå¯èœãšãªããeã³ããŒã¹ãæè²ããšã³ã¿ãŒãã©ã€ãºã¬ãã«ã§ã®ããŒã¿åæãªã©ãå€å²ã«ãããçšéã§ã®å®è·µã±ãŒã¹ã¹ã¿ãã£ãååšããŸããéçºç°å¢ãããŒã«ã®éžæãã³ãŒãå質ã®ä¿æã«ãæ°ãé ãããšããæè¯ã®çµæãçãéµãšãªããŸãã