2025-11-23 TSKaigi Hokuriku 2025
2025-11-23 TSKaigi Hokuriku 2025
ãã®æ¬ã¯ããã«ã¼ããªã¼æ¬ã® 8 ç« ããã¤ã³ã¹ãã¤ã¢ããã¦ã TS ã®åãç¤ºãæ å ±ãã Promise ã¨ãããã®ãçè§£ãã¦ã¿ããã¨ããã¢ããã¼ãã§æ¸ããJSã®éåæå¦çã®è§£èª¬ã§ãã ãããã®è³æã¨åããã¦èªããã¨ãæ¨å¥¨ãã¾ãã JSã®ã¤ãã³ãã«ã¼ãã®ã¤ã¡ã¼ã¸ãæ´ã JSã§ã¯ä¸ã æèãããã¨ãå°ãªãã§ãããæ£ããçè§£ããã«ã¯ OS ã¬ãã«ã®ã¹ã¬ããã®è¦ç¹ã§èãå§ããå¿ è¦ãããã¾ãã ãã©ã¦ã¶ã Node.js ã§ã¯ä¸ã¤ã®ã¹ã¯ãªããå®è¡åä½ã1ã¤ã®ã¹ã¬ããã«å²ãå½ã¦ã¾ãããããã¡ã¤ã³ã¹ã¬ããã¨å¼ãã ãããã©ã¦ã¶ã ã£ãã UI ã¹ã¬ããã¨å¼ãã ããã¾ãã ä¾ãã°ãã©ã¦ã¶ã§ã¯ãããã¯ç§é60åãã¤ã¾ã 16.6ms ãã¨ã«ã«ã¼ããå¼ã³åºãã¾ãã(node ã ã£ããããããã£ã¨çãã§ã) 仮㫠setTimeout ã®å®è£ ããªãã£ãã¨ãã¦ãããç¸å½ã®æ¬ä¼¼ã³ã¼ããæ¸ãã®ã試ã¿ã¾ãã let handl
ãã®æç¨¿ã§ã¯ããTypeScriptã®ææ³ãç¨èªãããåãããªããã¨ããåé¡ãè§£æ¶ãã¦ãããããªãã¼ã«ãç´¹ä»ãã¾ãã åå¼·ããªããã®è¦åãçºè» æè¿ã¯TypeScriptæªçµé¨ã§ããTypeScriptæ¡ä»¶ã«ã¢ãµã¤ã³ããããã¨ãå¢ãã¦ãã¦ããããã«æãã¾ãã éãããã¨çæåã«TypeScriptããã£ããå¦ç¿ããæéãä¸ãããããã¨ãããã¾ããããããå¤ãã®ã±ã¼ã¹ã§ã¯ãè¦åãçºè»ã§éçºã«åå ããã®ã§ã¯ãªãã§ããããã ã³ã¼ããªã¼ãã£ã³ã°ããå§ã¾ã TypeScriptæ¡ä»¶ã¯ãçè§£ãã¹ãæ¢åã®TypeScript/JavaScriptã³ã¼ããããã±ã¼ã¹ãå¤ãã§ãã ãã®ããã èªãã§çè§£ãã¹ãæ¢åã®TypeScriptã³ã¼ãããã ããããTypeScriptã®ç¥èãä¹ããç¶æ ã§ã¹ã¿ã¼ã ã¨ãã£ãäºæ ãããèµ·ãã¾ãã æ°è¦ããã¸ã§ã¯ãã§ã¯æ¢åã³ã¼ããããã¾ããããã°ã°ã£ã¦åºã¦ãããµã³ãã«ã³
ããã¨ãã åã ã®é¢æ°ã夿°ã«æ£ããåãã¤ãã話ã¯ãã¾ãããTypeScript Handbookã®Declarationã®ç« ãªã©ãèªããã¨ããããããã¾ãã ãããã«ãæ¬ç¨¿ã§ã¯é¢æ°ã夿°ã®å宣è¨ãã©ãã«ã©ãç½®ãã¹ããã®æéãä¸ãã¾ãã ã¢ã¸ã¥ã¼ã«ã¨ã¹ã¯ãªãã declareãæ£ãã使ãã«ã¯ã¾ãã¢ã¸ã¥ã¼ã«ã¨ã¹ã¯ãªããã®åºå¥ãçè§£ããæèãããã¨ã大åã§ãã ãã©ã¦ã¶ãNode.jsã¯å¤é¨ããã®æå®ã§ã¢ã¸ã¥ã¼ã«ã¨ã¹ã¯ãªãããåºå¥ãã¾ãããTypeScriptã§ã¯ååã¨ãã¦ãã¡ã¤ã«ã®å 容ã§ã¢ã¸ã¥ã¼ã«ã¨ã¹ã¯ãªãããåºå¥ãã¾ãã import 宣è¨ã¾ã㯠export 宣è¨ã1ã¤ä»¥ä¸ããã°ã¢ã¸ã¥ã¼ã«ã CommonJSã¢ã¸ã¥ã¼ã«ã®å ´åã¯TypeScriptå°ç¨æ§æã§ãã import = 宣è¨ã export = 宣è¨ã使ãã ãã以å¤ã®å ´åã¯ã¹ã¯ãªããã ãã ããJavaScriptãã¡ã¤ã« (
TypeScriptã¯è¿å¹´JavaScriptã«ä»£ãã£ã¦Webããã³ãã¨ã³ãéçºã§å©ç¨ããã¦ããããã°ã©ãã³ã°è¨èªã§ããTypeScriptã¯éçºçç£æ§ããã³éçºè ä½é¨ã«åªãã¦ãããã¨ãããéçºç¾å ´ã§åºãæ¡ç¨ããã¦ãã¾ããTypeScriptãå¦ã¶ãã¨ã¯ãä»å¾ã®Webããã³ãã¨ã³ãéçºã§ã¯ãã»ã¼å¿ é ã¨ãã£ã¦è¯ãã§ãããããã®è¨äºã§ã¯TypeScriptã使ãã¡ãªããããªãã³ã«ãTypeScript Deep Dive æ¥æ¬èªçããæ´»ç¨ãã¦TypeScriptãçæéã§å¦ç¿ããæ¹æ³ãç´¹ä»ãã¾ãã ã¯ããã« çè ã¯SIeråºèº«ã®ITã¨ã³ã¸ãã¢ã§ããã²ã¼ã éçºä¼ç¤¾ãªã©ãçµç±ãã¦ç¾å¨ã¯ä¸è¬ä¼æ¥ã§ã¨ã³ã¸ãã¢ã¨ãã¦å¤åãã¦ãã¾ããã¯ããã¦TypeScriptã®éè¦ããç¥ã£ãã®ã¯ã2018å¹´ããã«ãTypeScript Deep Diveããèªãã ã¨ãã§ãããããã¦ãä»å¾å¿ ãå¤ãã®äººã«å½¹ç«ã¤ã¨èãããªãª
ãµã ã TypeScript ã®ã³ã¼ãã¬ãã¥ã¼æã«åèã«è²¼ã£ãããã¦ããå é¨ããã¥ã¡ã³ããããã®ã§ãã, å é¨ã§ã¯ä½ãã¨äººç®ã«ã¤ãã«ããã®ã§, å å®¹ãæ´ãã¦å ¬éãã¦ããã¾ã. TypeScript ã®åã·ã¹ãã ã¯å®å ¨ã§ã¯ããã¾ãã. ã¤ã¾ã忤æ»ãééããã³ã¼ãã§ãã£ã¦ã, å®è¡æã«ã¨ã©ã¼ãçºçããå¯è½æ§ãããã¾ã. TypeScript ã®è¨è¨ã«ã¤ãã¦ã®ããã¥ã¡ã³ãã«ããã¦ã, non-goals ã®ä¸ã¤ã¨ã㦠Apply a sound or "provably correct" type system. Instead, strike a balance between correctness and productivity. ãæãããã¦ãã, å®å ¨ã«å®å ¨ãªãã®ãç®æãã®ã§ã¯ãªã, å®å ¨æ§ã¨å©ä¾¿æ§ã¨ã®ãã©ã³ã¹ãã¨ããã®ã¨ããã¦ãã¾ã. ãã¨ãã£ã¦ TypeScript ã使ããªã
仿¥ãªãªã¼ã¹ããã TypeScript 4.5 Beta ã®æ°æ©è½ã¨ãã¦ãæ¨æºã©ã¤ãã©ãªã®å·®ãæ¿ãã徿¥ãããç°¡åã«ãªãã¨ãããã®ãããã¾ãã çè 㯠TypeScript ã®æ¨æºã©ã¤ãã©ãªããanyãæé¤ãã¦ããå®å ¨ã«ããbetter-typescript-libãéçºãã¦ãã¾ãããããã®ãã³ TypeScript 4.5 ã«å¯¾å¿ãã v2.0.0 ã®ãã¼ã¿çãç¨æãã¾ããï¼2.0.0-betaï¼ã ãã®è¨äºã§ã¯ better-typescript-lib ã®ç°¡åãªç´¹ä»ã«å ãã¦ãTypeScript 4.5 ã®æ©è½ã®è§£èª¬ãããã«ãã£ã¦ better-typescript-lib ã«èµ·ãã£ãå¤åãç´¹ä»ãã¾ãã better-typescript-lib ã«ã¤ã㦠better-typescript-lib ã¯ãTypeScript ã®æ¨æºã©ã¤ãã©ãªãããåå®å ¨ã«ãããã®ã§ããbetter
Viteã´ã£ã¼ãï¼ãã©ã³ã¹èªã§ãéããã®æå³ï¼ã¯ããã³ãã¨ã³ãã®ãã«ããã¼ã«ã§ãã ã·ã³ãã«ãªã¦ã§ããã¼ã¸ã®ä½æããReactãVue.jsãªã©ã®ãã¬ã¼ã ã¯ã¼ã¯ã使ã£ãã¢ããªã±ã¼ã·ã§ã³ã®éçºã¾ã§ããã¾ãã¾ãªç°å¢ã§å©ç¨ã§ããæ±ç¨çã§å¼·åãªãã¼ã«ã§ãã2026å¹´ã«ãªãªã¼ã¹ããããã¼ã¸ã§ã³8ã§ã¯ãããã©ã¼ãã³ã¹ãéçºä½é¨ãããã«åä¸ãã¦ãã¾ãã Viteã¯Next.jsã»Nuxtã»Astroã®ãããªãã¬ã¼ã ã¯ã¼ã¯ï¼ã¡ã¿ãã¬ã¼ã ã¯ã¼ã¯ï¼ã使ããã«éçãµã¤ããReactã»Vue.jsçã®SPAãéçºããããã«ä½¿ããã¾ããä½ç½®ä»ãã¨ãã¦ã¯webpackã®ãããªãã³ãã©ã¼ã¨å¼ã°ãããã®ã«è¿ãåå¨ã§ãããããã ãã§ã¯ããã¾ããã ãã®è¨äºã§ã¯ãViteãå°å ¥ãã¦éçã¦ã§ããµã¤ãããTypeScriptã»Reactã»Tailwind CSSçãçµã¿åãããã¢ããªã±ã¼ã·ã§ã³ã¾ã§ãå¿«é©ãªéçºç°å¢ãæã«å ¥ããæ¹æ³
çããããã«ã¡ã¯ã京é½éçºå®¤ã®Linã§ããä»äºã¨å人çãªããã¸ã§ã¯ãã§TypeScriptã«ããéçºãå§ãã¦ç´2å¹´ãçµã¡ã¾ããã®ã§ã TypeScriptå°å ¥æã®çµé¨ãçããã«ã話ããããã¨æãã¾ãã è¿å¹´ãTypeScriptã¯ããã³ãã¨ã³ãåéã§æãæ³¨ç®ãéããæè¡ã¨ãªã£ã¦ãã¾ããThe State of JavaScriptã®è³æã«ããã°ãTypeScriptã®ä½¿ç¨ã鏿ããéçºè ã¯å¢å ãç¶ãã¦ããããã®è©ä¾¡ãè¯å®çãªãã®ãå¤ãããã§ãã ãæ¬¡ã®ããã¸ã§ã¯ãã§ã¯TypeScriptã«ããéçºãè¡ãã¹ãã ããä»ããJavaScriptããã¸ã§ã¯ããTypeScript仿§ã«å¤æ´ããã°ãããã¸ã§ã¯ãå質ã®åä¸ã«ã¤ãªãããã¨èãã¦ãããã¼ã ã¯æ°å¤ãããã§ãããã ããããªãããTypeScriptå°å ¥ã®ã³ã¹ãããã³ã¡ãªããã«ã¤ãã¦ã¯ã極ãã¦æ éã«è©ä¾¡ãè¡ãå¿ è¦ãããã¨ãç§ã¯èãã¦ãã¾ãã
ä»å¹´6æã®TypeScript Meetup #4ã§åå ¬éãããTypeScript製ãã¬ã¼ã ã¯ã¼ã¯ãfrourio (ãã«ã¼ãªãª)ãã仿ã®ã¢ãããã¼ãã§ãã¡ããã¡ãã«ãã³ããæãã«ä»ä¸ãã£ã¦ããã®ã§ç´¹ä»ãã¾ã frourioã¯ããã³ãããããã¯ã¨ã³ãã»ORãããã¼ã¾ã§ã®ã¢ããªå ¨ä½ãä¸ã¤ã®TypeScriptã¨ãã¦çµ±ååãã§ãã¯ãå¯è½ã«ãªããã¬ã¼ã ã¯ã¼ã¯ã§ã 1ã¤ã®ãã£ã¬ã¯ããªã§å®çµããã®ã§ä¸è¦ããã¨ã¢ããªã·ãã¯ã®ããã§ãããåã§ç¹ãã£ã¦ãããã¨ä»¥å¤ã¯ããã³ãã¨ããã¯ãåå¥ã®ããã¸ã§ã¯ãæ±ãï¼ããããã«å¥ã®package.jsonãããï¼ãªã®ã§ããã³ãã¯Vercelãããã¯ã¨ã³ãã¯Dockerã§AWSã«ãããã¤ããã¿ãããªãã¨ãå¯è½ã§ã æ°ããfrourioã®ç¹å¾´ TypeScriptè£½ã§æéã®ãã¬ã¼ã ã¯ã¼ã¯ ã³ãã³ã1çºã§ããã³ãSPA + RESTãµã¼ãã¼ + ORãããã¼ã®ç°å¢æ§ç¯
Reactã®Concurrent Modeãæåã«çºè¡¨ãããã®ã¯ãã1å¹´è¿ããåã®ãã¨ã§ãï¼è¨äºå·çæç¹1ï¼ãConcurrent Modeã¯ããã¸ãå¥¥æ·±ãæ©è½ã§æ£å¼çãããã¸ãå¾ ã¡é ããã§ãããConcurrent Modeã®ä»£åè©ã¨ãã¦å¤ãã®Reactã¦ã¼ã¶ã¼ã«ç¥ããã¦ããã®ã¯Promiseãthrowããã¨ããAPIãã¶ã¤ã³ã§ããConcurrent Modeã§ã¯ãã³ã³ãã¼ãã³ããã¬ã³ããªã³ã°æã«Promiseãthrowãããã¨ã§ãã¬ã³ããªã³ã°ããµã¹ãã³ãããï¼Promiseã解決ãããã¾ã§ã¬ã³ããªã³ã°ã§ããªãï¼ãã¨ã表ãã¾ãã Concurrent Modeã«é¢ãã¦ã¯çè ã®æ¢åè¨äºConcurrent Modeæä»£ã®Reactè¨è¨è« (1) Concurrent Modeã«ãããéåæå¦çãªã©ããåç §ããã ãããã®ã§ãããããã§ã¯Promiseãthrowããã¨ãããã¨èªä½ã«ç¦ç¹
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? TypeScriptå ¨ç¶ããããªã... ã¨ããç¶æ ãããããã¸ã§ã¯ãã«å°å ¥ã§ããã¾ã§ã«ãªãã¨ããªã£ãã®ã§ã å¦ç¿ã®åèã«ãªã£ããã®ãªã©ãã¾ã¨ãã¦å¦ç¿ãã¼ããããã使ãããã¾ããã ç§èªèº«ãã¾ã ã¾ã ã®ã¬ãã«ã§ãããããããTypeScriptãåå¼·ããã!ã¨ããæ¹ã®éããã¹ã«ãªãã°å¹¸ãã§ã Level 0: TypeScriptã£ã¦ãªãããï¼ ã¾ãå¦ç¿ããåã«ããã®å¯¾è±¡ããªããªã®ãããè¦æ¥µãã使¥ã§ãã TypeScript㯠altJS ã®ï¼ã¤ã§ãã JSã¯å ã å¤§è¦æ¨¡ãªã³ã¼ããçµãã«ã¯ä¸åããªè¨è¨ã«ãªã£ã¦ããã®ã§ã altJSã¨ãã
ã¤ãå æ¥ beta ãªãªã¼ã¹ãããããã³ãã¨ã³ãã®ãã¼ã«ãã§ã¤ã³ã® Rome ã«ã¤ãã¦ããã®ææ³ã¨ã³ã¼ããèªãã çµæã®ç¾ç¶ã«ã¤ãã¦ã Rome Frontend Toolchain ãã®è¨äºã¯å ¬å¼ããã¥ã¡ã³ã以å¤ã«ãã½ã¼ã¹ãèªãã§å¾ããã undocumented ãªé¨åãå«ãã§ããã®ã§ãããå¤ããªãããã®åæã§èªãããã«ã åé¡ã®èªèã¨ãã®è§£æ±ºææ®µ ããã³ãã¨ã³ãã®æé©åã¯å®è¡åã®ããªããã»ã¹ã«ãã¨ã³ã·ã¹ãã ã®éçºãªã½ã¼ã¹ã®å¤ããå½ã¦ããã¦ãããNode ã®ãã¼ã«ãã§ã¤ã³ãçºéããã«ã¤ãã¦ãèªåã® ãã¼ãµ+AST å®ç¾©ãæã¤å®è£ ãå¢ãã¦ãã£ãæ´å²ãããã acorn(estree) babel prettier typescript terser ããããã®ãã¼ã«ã®çæãã AST ã¯ãã®ãã¼ã«ã®é½åã§å¾®å¦ã«/ãããã¯å¤§å¹ ã«å®ç¾©ãããã¦ãããtypescript ã«è³ã£ã¦ã¯å®å ¨ã«å¥ç©ãã
LINEæ ªå¼ä¼ç¤¾ã¯ã2023å¹´10æ1æ¥ã«LINEã¤ãã¼æ ªå¼ä¼ç¤¾ã«ãªãã¾ãããLINEã¤ãã¼æ ªå¼ä¼ç¤¾ã®æ°ããããã°ã¯ãã¡ãã§ãã LINEã¤ãã¼ Tech Blog ããã«ã¡ã¯ãLINE Growth Technology UITãã¼ã ã®æ ¶å³¶(@pittanko_pta)ã§ãã ãã®è¨äºã§ã¯ãTypeScriptã®enumã使ããªãã»ããããçç±ããTree-shakingã®è¦³ç¹ã§ç´¹ä»ãã¾ãã æ¤è¨¼ç°å¢ TypeScriptããJavaScriptã¸ã®ãã©ã³ã¹ãã¤ã«ã¯Â https://www.typescriptlang.org/play (TypeScript 3.9.2 / targetã¯ESNext) ã§è¡ãã¾ããã Tree-shaking ã®æåã«ã¤ãã¦ã¯Â https://rollupjs.org/repl/ ã«ãã©ã³ã¹ãã¤ã«ããJavaScriptã³ã¼ããè²¼ãä»ãã¦æ¤è¨¼ãã¾ãã
ããã¸ã§ã¯ãã§ä½¿ããã¦ããæè¡ã¨ ESModule ã®ç¶æ³ã«ã¤ã㦠UIT ã§ã¯ã SPA éçºã®ããã¸ã§ã¯ãã«ãã㦠Vue.js 㨠React ãå¤ãå©ç¨ããã¦ãããæ¢åã®å¤ã㯠Babel ãå©ç¨ãã JavaScript ã§ãæ°è¦ã®ããã¸ã§ã¯ãã§ã¯ TypeScript ãå©ç¨ãã¦éçºãè¡ããã¦ãã¾ãã FYI: ãLINE DEV DAY 2019 çªå¤ç·¨ãUIT Front-end Tooling Survey 2019 æè¡é¸å®ã¯å¿è«ãããã¸ã§ã¯ãã«ãããç´°ããªã³ã¼ãã£ã³ã°ã«ã¼ã«ã«ã¤ãã¦ã¯ãããã¸ã§ã¯ãã®ã³ã¼ããªã¼ãã¼ã«å§ãããã¦ãããããã¸ã§ã¯ããã¨ã«è£éãæã£ãæææ±ºå®ãè¡ã£ã¦ãã¾ãã ãã®ä¸ã§ãç§ãæºããããã¸ã§ã¯ãã«ããã¦ã¯ã default export ãå¯è½ãªéãé¿ããããã«å¿ããã¦ãã¾ãã import å´ã®è£éã§å¯¾è±¡ãèªç±ã«å½åã§ãã¦ãã¾ã ä»åã¯ããDa
åºæ¬ææ³ ã¨ã«ããèããå¿ è¦ãªãã®ã ããåºæ¬ã¯ ts-loader ã transpileOnly: true ã§ä½¿ãã ããææªããã ãã§ãããåãã§ãã¯ã¯IDEã yarn tsc -p . --noEmit ã§ããã CRA ã parcel ã¯ä½¿ããªããæé»ãªæ¯ãèããå¤ãããã®ã§ãä¸ååå¼·ããããªã人ã¯ããã¦ããã¨æããããã®å ´å eject ããªããdist ãã£ã¬ã¯ããªããã®ã¾ã¾ä½¿ããã¨åæã style-loader/css-loader ã¯å¤é¨CSSãèªãã¨ãã«è¨å®ãã worker-plugin ã¯ãªãã¦ããããã©ã worker ããã«ãããããã¨ãå¤ãã®ã§ãå ¥ãã¦ãããã¨ãå¤ã html-webpack-plugin 㨠webpack-dev-server çµã¿åãããã¨ãä»ã¨çµã¿åãããã«å®çµãã¦åãããã®HTMLãæ¬çªã§ä½¿ããã¨ãããããã°ã§ä½¿ã£ã¦ããã¨ãå¤ãã®
âæ°ä½ããããããã§ï¼ ã¸ã§ããªã¯ã¹ãããå°ãã ã使ãããªãã ã³ããã¦ã£ã«ã¹å¯¾çã§ãªã¢ã¼ãã¯ã¼ã¯ãã¦ã¿ããReduxãVuexã®ã¡ãªãããåãã£ã 36æ³ã¶ã³ã¼ãã¼ã®ä¼æ¥ ã¯ã¤ãä½ããã®ã³ã¼ããå ¨ç¶åãã¸ãããã ã¯ã¤ãæããªï½æããªï½â¦ãªããå«ã ãªãï½ã ãã太éãï¼ä½ã§èªåãæ¸ããã³ã¼ãè¦ã¦ç¨²å·æ·³äºã¿ããã«æ¯ãã¨ãããã»ã»ã»ï¼ã ãã太éãï¼ãããªé³¥èç«ã¤ãããªã¯ã½ã³ã¼ãæ¸ãã¦ãã®ãããªã»ã»ã»ï¼ã å¨ï¼4æ³ï¼ããããããã ã¯ã¤ããªãããå¨ã¡ããã å¨ãã¡ãã£ã¨ãä½ã£ã¦ã»ãã颿°ãããã®ã ã¯ã¤ãã¾ããããªã ã¯ã¤ãå¨ã¡ããã¯ãã³ãã«é¢æ°ã大好ãããªãã ã¯ã¤ãããããªããããã¯ããã°ã©ãã³ã°è¦æããã©ãé å¼µã£ã¦ä½ã£ãããã å¨ããããã¨ããããã ä»åã®è¦ä»¶ ã¯ã¤ãã»ãã§ãä»åã¯ã©ããªé¢æ°ãä½ãã°ããããï¼ã å¨ããã£ã¨ãã å¨ã'ã'ã¨ããæååãæ¸¡ãããã å¨ã['ã', 'ã
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
å¦çãå®è¡ä¸ã§ã
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}