TypeScript 7 ç§»è¡ã³ã¹ãã¯lintã§å€ãã â 3ãããžã§ã¯ãã§åãããå°å ¥ãšèŠéã
TypeScript 7 ç§»è¡ã§ãã¢ããªã³ãŒãã1è¡ãè§Šããçµãã£ã1ä»¶ãšãTypeScript 6 ãšã®äœµçšæ§æãå¿ èŠã«ãªã£ã2ä»¶ãäœãäž¡è ãåããã®ããCI ã®å®æž¬å€ãšãnpm ci ã®å€±æãå«ã4ã€ã®éçšã³ã¹ããããå°å ¥ããæ¡ä»¶ãšåŸ ã€æ¡ä»¶ãæŽçããŸãããTypeScript 7 ã¯10åéãããšããæ°åãèŠãŠã瀟å ã®ãªããžããªãäžæã«äžããèšç»ãç«ãŠãŠããªãã§ããããã
TypeScript 7.0 ã«äžããããããæåã«åãåããã®ã¯ããCompiler API ã import ããããŒã«ã«äŸåããŠããããã§ãã å®åã§ããã«åœããã®ã¯ lint ã§ããããšãå€ããç§ãã¡ã®3ãããžã§ã¯ãã lint ã«äœã䜿ã£ãŠãããã§çµæãåãããŸããïŒts-jest ã ts-node ã®ãããªãã¹ãã»å®è¡ç³»ãåãåé¡ã«å
¥ããŸãïŒã該åœããã°ãTypeScript 6 ãšã®äœµçšæ§æãçµãã 7.1 ãåŸ
ã€ãã®å€æã«ãªããŸãã該åœããªããã°ç§»è¡ã®ããŒãã«ã¯å€§ããäžãããŸããããã®å Žåã§ã typescript ã peer dependency ã«æã€ã©ã€ãã©ãªã®ç£æ»ãšãtsconfig.json ã®éäºæã®ç¢ºèªã¯å¿
èŠã§ããTECH PLAY ã§ã¯3ã€ã®ãããžã§ã¯ãã§æ€èšŒãã1ã€ã«å°å
¥ããŠ2ã€ãèŠéããŸãããå°å
¥ãã1ã€ã¯ãèšå®ãã¡ã€ã«4ã€ã®å€æŽã ãã§æžã¿ãã¢ããªã±ãŒã·ã§ã³ã³ãŒãã¯1è¡ãè§Šã£ãŠããŸããã
æ¥ãã§ããæ¹ã®ããã«ãçµè«ã ãå ã«3è¡ã§ç€ºããŸãã
- 該åœããããŒã«ããªããã°ç§»è¡ã®ããŒãã«ã¯äžãããŸãããpeer dependency ãš tsconfig.json ã®ç¢ºèªã¯å¿ èŠã§ã
- 該åœãããªãã7.1 ãšããŒã«åŽã®å¯Ÿå¿ãåŸ ã€æ¹ãå®ãæžãå¯èœæ§ãé«ãã§ã
- ã©ã¡ãã®å Žåã§ãã
npm ls typescriptã«ããäºåç£æ»ã¯å¿ èŠã§ãã æ ããšnpm ciãèœã¡ãã³ã³ããã®ãã«ããçµç±ããŠãããã€ãæ¢ãŸãããšããããŸã
æ¬èšäºã¯å€æã«å¿ èŠãªç¯å²ã«çµããŸããç§»è¡æé ãã®ãã®ãš tsconfig.json ã®ç Žå£ç倿Žã¯ãååã®èšäºïŒTypeScript 7.0 RCã®10åéã¯æ¬åœãïŒïŒã§æ±ã£ãŠããŸããæ€èšŒã¯ãã¹ãŠ npm ã§è¡ã£ãŠãããpnpm ãš yarnãããã³ã¢ãã¬ãæ§æã¯æªæ€èšŒã§ãã
äœãå€ãã£ãŠãäœãå€ãã£ãŠããªãã
TypeScript 7.0 ã¯2026幎7æ8æ¥ã«æ£åŒãªãªãŒã¹ãããŸããïŒå
¬åŒããã°ãtypescript@7.0.2ïŒãã³ã³ãã€ã©ã Go ã§åå®è£
ãããåã·ã¹ãã ãšæ§æã¯ TypeScript 6.0 ãšäºæã§ãã
ç§»è¡å€æã«å¹ããŠããã®ã¯ãé床ã§ã¯ãªã次ã®äžæã§ãã
While TypeScript 7.0 is here, it does not ship with an API. We expect TypeScript 7.1 to ship with a new (and different) API, but until then we have made it a priority to ensure TypeScript can be run side-by-side with TypeScript 6.0 for utilities that still need some programmatic access to the compiler (such as typescript-eslint).
ã€ãŸã 7.0 ã«ã¯ãåŸæ¥ã® Compiler API ãšäºææ§ã®ããå®å®ããããã°ã©ããã£ã㯠API ããããŸãããts.createProgram() ã®ãã㪠Node.js åã API ã䜿ã£ãŠããããŒã«ã¯ããã®ãŸãŸã§ã¯åããŸãããå
¬åŒã¯ 7.1 ã§æ°ãã API ãæäŸãããšãããªãªãŒã¹ã¯ "new featureful versions published every 3-4 months" ã®ã±ã€ãã³ã¹ã«æ»ããšè¡šæããŠããŸãã7.0 ã7æ8æ¥ãªã®ã§ 2026幎10ã11æãããç®å®ã§ãããå
¬åŒãæ¥ä»ãæèšããŠããããã§ã¯ãããŸããã
æåã®åãåã â Compiler API ã import ããŠããã
ããŒã«ã TypeScript ãšã©ãé¢ãã£ãŠãããã§ã圱é¿ã¯4ã€ã«åãããŸããåé¡ããŠã¿ããšããããžã§ã¯ãã« TypeScript 7 ãå ¥ãããšãã«çŽæ¥å£ããã®ã¯4ã€ç®ã ãã§ãã
| äŸå圢æ | ä»£è¡šäŸ | ãããžã§ã¯ãã«çŽ ã® TS 7 ãå ¥ãããšã |
|---|---|---|
tsc ãå€éšããã»ã¹ãšããŠèµ·å | CI ã®åãã§ãã¯ãvitest typecheck | åããé«éåã®æ©æµãã |
| ç¬èªããŒãµãŒãæã€ | Biomeãesbuild | åããTS ã®ããŒãžã§ã³ã«éäŸå |
| TypeScript ã忢±ããŠãã | ts-morph | åãããã ãé«éåã¯ãªã |
Compiler API ã import ãã | typescript-eslintãts-jest | åããªã |
衚ã ãã§ã¯å€æãã¥ããã®ã§ãäž»èŠããŒã«ã«ã€ããŠ1è¡ãã€ç¶æ³ãæžããŠãããŸãã
- typescript-eslint ã¯çŽ ã® TypeScript 7 ã§ã¯åããŸããã ææ°ã® 8.67.0ïŒ2026幎8æ10æ¥å
¬éïŒã§ã peer dependency ã¯
typescript: ">=4.8.4 <6.1.0"ã®ãŸãŸã§ã7.x ãã€ã³ã¹ããŒã«ãããšè§£æ±ºã«å€±æããŸãïŒå¯Ÿå¿ Issue #10940ïŒã - ts-jest ã¯çŽ ã® TypeScript 7 ã§ã¯åããŸããããäœµçšæ§æãªãåããŸãã 29.4.12ïŒ2026幎7æ22æ¥å ¬éïŒã§ TypeScript 7 ãæ€åºãããšã©ãŒã¡ãã»ãŒãžã§å¯ŸåŠæ³ãŸã§æ¡å ããããã«ãªããŸããã
- ts-morph 㯠TypeScript 7 ãå
¥ããŠã圱é¿ãåããŸããã
@ts-morph/commonã TypeScript 6.0.2 ã忢±ããŠãããã€ã³ã¹ããŒã«æžã¿ã®typescriptããã±ãŒãžãåç §ããªãããã§ããts-morph 28.0.0ïŒ@ts-morph/common0.29.0ïŒã§ç¢ºèªããrequire('ts-morph').ts.versionã¯6.0.2ãè¿ããŸããããã ãè§£æã«äœ¿ãããã®ã¯å梱㮠TypeScript 6 ãªã®ã§ãCI ã®åãã§ãã¯ãšèšºæçµæãé£ãéãå¯èœæ§ã¯ãããŸãããã®ç¹ã¯ãTypeScript ã® AST ãæ±ãããŒã«ã ããå£ããããšèª€ã£ãŠç޹ä»ãããŠããããšããããããæå ã§ç¢ºèªããŠã¿ãŠãã ããã - Biome ãš vitest ã¯åœ±é¿ãåããŸããã Biome ã¯ç¬èªããŒãµãŒã§è§£æããvitest ã¯ãã¹ãã®å€æã esbuild ãæ
åœããŸãã
vitest typecheckã䜿ã£ãŠããå Žåã¯tscãå€éšèµ·åããããããã¡ã㯠TypeScript 7 ã®é«éåããã®ãŸãŸå¹ããŸãã
3ã€ç®ã®ã忢±ããŠããããç¬ç«ãããŠããã®ã¯ããããèŠèœãšããšå€å®ã誀ãããã§ããts-morph 㯠TypeScript ã® AST ãæ±ãã©ã€ãã©ãªãªã®ã§çŽæçã«ã¯åœ±é¿ãåãããã§ãããå®éã«ã¯èªåã§ TypeScript ãæ±ããŠããããç¡å·ã§ãããTypeScript ã® AST ãæ±ãããã§ã¯ãªããã€ã³ã¹ããŒã«æžã¿ã® typescript ããã±ãŒãžãåç
§ããããã§åé¡ããŠãã ããã
æ¬èšäºã§å®éã«æ€èšŒããã®ã¯äžèš5ããŒã«ã§ããæ¬¡ã®ããŒã«ã¯æªæ€èšŒã§ãããCompiler API ãå©çšããæ§æãäžè¬çãªããã4ã€ç®ã«è©²åœããå¯èœæ§ããããŸãã 䜿ã£ãŠããå Žåã¯ãããããã® peer dependency ã®ç¯å²ãš API å©çšã®æç¡ã確èªããŠãã ããã
- ts-nodeãts-loaderãfork-ts-checker-webpack-plugin
- vue-tscãsvelte-checkãAngular ã®ãã«ãããŒã«çŸ€
ãã ãç¶æ³ã¯åããŠããŸããããšãã° svelte-check 㯠4.7.4 ã§ãnpm alias çµç±ã® TypeScript 7 Stable ãžã®å¯Ÿå¿ããå
¥ãã--tsgo-experimental-api ãšããå®éšçãªçµè·¯ãæã£ãŠããŸãïŒpeer ã®ç¯å²ã¯ 4.7.6 æç¹ã§ã ^5.0.0 || ^6.0.0 ã®ãŸãŸã§ãïŒããã®åé¡ã¯åºçºç¹ãšããŠäœ¿ããå®éã«äœ¿ã£ãŠããããŒã«ã«ã€ããŠã¯ææ°ã® CHANGELOG ã確èªããŠãã ããã
Next.js ã¯4ã€ç®ã«å ¥ããŸã
èªè
ã®å€ããã¬ãŒã ã¯ãŒã¯ãªã®ã§ãNext.js ã ããœãŒã¹ã³ãŒãã確èªããŸããïŒnext@16.0.8ïŒãnext build ã®åãã§ãã¯ã¯ Compiler API ãçŽæ¥åŒãã§ããŸãã
// next/dist/lib/typescript/runTypeCheck.js
program = typescript.createProgram(effectiveConfiguration.fileNames, options);
const allDiagnostics = typescript.getPreEmitDiagnostics(program)...
typescript 㯠Next.js ã«å梱ãããŠããããå©çšè
ã® node_modules ãã解決ããŠèªã¿èŸŒãŸããŸããã€ãŸãåé¡äžã¯4ã€ç®ã§ãã
ãã ãå®éã« TypeScript 7 ãå
¥ãããšããã® API åŒã³åºããŸã§å°éããŸãããæåã®äŸåãã§ãã¯ã§æ¢ãŸããŸããNext.js 㯠typescript ããã±ãŒãžã®æç¡ããtypescript/lib/typescript.js ãšãããã¡ã€ã«ãå®åšãããã§å€å®ããŠããããã§ãã
TypeScript 7.0.2 ã® lib/ é
äž
getExePath.js / tsc.js / version.cjs / version.d.cts
â typescript.js ãååšããªã
çµæãšããŠãTypeScript 7 ãå ¥ã£ãŠããã®ã«ãTypeScript ãã€ã³ã¹ããŒã«ãããŠããªãããšå€å®ãããŸãããšã©ãŒã¡ãã»ãŒãžããåå ã«ãã©ãçãã«ããçš®é¡ã®å€±æã§ãã
next.config ã® typescript.ignoreBuildErrors ã¯åãã§ãã¯èªäœãã¹ãããããŸããïŒåå®çŸ©ã®ã³ã¡ã³ãã¯ãDo not run TypeScript during production builds (next build).ãïŒããã®äŸåãã§ãã¯ã¯å¥ã«èµ°ããããããã ãã§ã¯åé¿ã§ããŸããã
ãªãããã¯ãœãŒã¹ã³ãŒããèªãã§ç¢ºèªããçµæã§ãTypeScript 7 ã®ç°å¢ã§å®éã« next build ãå®è¡ããããã§ã¯ãããŸãããNext.js ã䜿ã£ãŠã㊠TypeScript 7 ã«èå³ãããå Žåã¯ããŸãæ€èšŒãã©ã³ãã§è©ŠãããšãããããããŸãã
ãªãããã®åé¡ã§å€å®ã§ããã®ã¯ãTypeScript 7 ã®ã³ã³ãã€ã©ã«å·®ãæ¿ãããããããŸã§ã§ããå®éã«ç§»è¡ãããã©ããã¯ãåŸè¿°ãã peer dependency ã®ç¶æ³ãCI ã§åŸããã广ãäœµçšæ§æã®éçšã³ã¹ããåãããŠæ±ºããããšã«ãªããŸãã
ãåããªããã®äžèº«ã宿©ã§ç¢ºããã
ããã¯åãåãã«è©°ãŸã£ããšãã«èªãç¯ã§ãã倿ã ããæ¥ãå Žåã¯æ¬¡ã®ã»ã¯ã·ã§ã³ãžé²ãã§ãã ããã
ãCompiler API ã«äŸåããããŒã«ã¯ã¯ã©ãã·ã¥ããããšã ãæžãããŠããèšäºãå€ãã®ã§ãããå®éã®å£ãæ¹ã¯åç §ã®ä»æ¹ã«ãã£ãŠå€ãããŸããTypeScript 7.0.2 ãå ¥ããç°å¢ã§ç¢ºèªããçµæã以äžã§ãã
# typescript@7.0.2 ã®ç°å¢ã§å®è¡
require('typescript') â æåïŒããŒã¯ version ãš versionMajorMinor ã®2ã€ã ãïŒ
ts.createProgram() â TypeError: ts.createProgram is not a function
require('typescript/lib/typescript') â ERR_PACKAGE_PATH_NOT_EXPORTED
require('typescript/lib/tsserverlibrary') â ERR_PACKAGE_PATH_NOT_EXPORTED
require('typescript/unstable/ast') â ERR_REQUIRE_ESM
äž»ãšã³ããªã® import ts from "typescript" ã¯æåããŸãã 倱æããã®ã¯ API ãåŒãã ç¬éã§ããäžæ¹ãtypescript/lib/tsserverlibrary ã®ãããªæ·±ããã¹ãçŽæ¥èªãããŒã«ã¯ãã¢ãžã¥ãŒã«è§£æ±ºã®æ®µéã§èœã¡ãŸãããšã©ãŒãå
šãéãã®ã§ãåå ã®åãåãã«äœ¿ããŸãã
çç±ã¯ããã±ãŒãžã® exports ã«ãããŸãã
// typescript@7.0.2 ã® package.jsonïŒæç²ïŒ
{
"exports": {
".": "./lib/version.cjs",
"./unstable/sync": "./dist/api/sync/api.js",
"./unstable/ast": "./dist/ast/index.js"
}
}
äž»ãšã³ããªã¯ããŒãžã§ã³æ
å ±ã ããè¿ãã¹ã¿ãã«å·®ãæ¿ããããlib/typescript ã lib/tsserverlibrary ã¯å
¬éãããŠããŸããã./unstable/* ã®æ°ãã API ã¯æ¢ã«ååšããŸãããååã®ãšããå®å®çã§ã¯ãªããESM ã§ã®ã¿èªã¿èŸŒããŸãã
äžããåŽ â 倿Žã¯4ãã¡ã€ã«ãã¢ããªã±ãŒã·ã§ã³ã³ãŒã0è¡
ãããã3ãããžã§ã¯ãã®å®äŸã§ããåããç®ã¯ lint ã«äœã䜿ã£ãŠãããã§ããã
3ã€ã®ãã¡ãå®éã«æ¬çªæå
¥ããã®ã¯åå è
åãã® Web ã¢ããªã§ããlint ã« Biome ã䜿ã£ãŠãããåãã§ãã¯ã¯ CI ã§ tsc --noEmit ãå€éšèµ·åããŠããã ãã§ãããã€ãŸãå
ã»ã©ã®è¡šã®1ã€ç®ãš2ã€ç®ã«ãã該åœããŸããã
å¿ èŠã ã£ã倿Žã¯ãããã±ãŒãžããã¯ãã¡ã€ã«ãé€ããš4ãã¡ã€ã«ã远å 15è¡ã»åé€2è¡ã§ãããã¢ããªã±ãŒã·ã§ã³ã³ãŒãã®å€æŽã¯0è¡ã§ãã
ãªããããã¯å€æŽéã§ãã£ãŠç§»è¡ã³ã¹ãã§ã¯ãããŸãããå®éã«ããã£ãæéã¯èšæž¬ããŠããªããã人æ¥ã¯åºããŸããããå·¥çšã¯ãäŸåã®ç£æ» â tsconfig ã®ä¿®æ£ â å宣èšã®è¿œå â CI ã§ã®ç¢ºèª â ãã«ãææç©ã®æ¯èŒãã®5ã€ã§ãããèŠç©ããéã®åèã«ããŠãã ããã
// package.json
- "typescript": "^5.0.2",
+ "typescript": "^7.0.2",
+ "@types/mdx": "^2.0.13",
// tsconfig.json
- "baseUrl": ".",
@types/mdx ã远å ããã®ã¯ãMDX ã®åå®çŸ©ã鿥çãªäŸåã«é Œã£ãŠããããã§ããbaseUrl 㯠TypeScript 7 ã§å»æ¢ãããŠããã®ã§åé€ããŸããããªã package.json ã®æå®ã¯ ^5.0.2 ã§ããããããã¯ãã¡ã€ã«äžã®å®äœã¯ 5.9.2 ã§ããæ¬¡ã«ç€ºã CI ã®å®æž¬ã¯ããã® 5.9.2 ãšã®æ¯èŒã«ãªããŸãã
ã¢ã³ããšã³ã宣èšã®ççž®åœ¢ã«æ³šæãã
TypeScript 7 ã§ã¯ noUncheckedSideEffectImports ãããã©ã«ãã§æå¹ã«ãªããããCSS ã MDX ã®ãããªå¯äœçšã€ã³ããŒãã«å宣èšãå¿
èŠã«ãªããŸããããã§1ç®æã€ãŸãããŸããã
// TypeScript 7.0.2
// NG: MDX ã®åã any ã«ãªããåãã§ãã¯ãçŽ éããã
declare module "*.mdx";
// OK: 忢±ã®åå®çŸ©ãæç€ºçã«åç
§ãã
declare module "*.mdx" {
import type { Element, MDXProps } from "mdx/types";
export default function MDXContent(props: MDXProps): Element;
}
ç瞮圢ã§ããšã©ãŒã¯æ¶ããŸãããã ããã®å㯠any ã«ãªãã@types/mdx ã®åå®çŸ©ãäžæžãããŠããŸããŸãããšã©ãŒãæ¶ããããšã§å¯ŸåŠæžã¿ã ãšå€æããããç®æãªã®ã§ã宣èšãæžããããšã«åãå¹ããŠãããã確èªããŠãã ããã
CI ã®å®æž¬å€
æ¬çªã® GitHub Actions ã§ãç§»è¡ååŸã4åãã€èšæž¬ããŸããã
| å·¥çš | TypeScript 5.9.2ïŒ4åïŒ | TypeScript 7.0.2ïŒ4åïŒ |
|---|---|---|
| åãã§ã㯠+ lint | 13ã15ç§ | 3ã7ç§ |
| äŸåã€ã³ã¹ããŒã« | 10ã12ç§ | 8ã14ç§ |
| ãŠããããã¹ã | 44ã48ç§ | 45ã98ç§ |
| Storybook ã®ãã¹ã | 66ã70ç§ | 67ã133ç§ |
æ°åã®èªã¿æ¹ã«æ³šæãèŠããŸããTypeScript 7 åŽã®4åã®ãã¡2åã¯ãå šå·¥çšãäžæ§ã«é ããªã£ãŠããŸãã ãŠããããã¹ããæå€§98ç§ãšåºæºã®2åãè¶ ããŠããããã㯠TypeScript ã§ã¯ãªãã©ã³ããŒåŽã®æ§èœå€åã§ããåãã§ãã¯ä»¥å€ã®å·¥çšã§ã¯ããã®å€åãããŒãžã§ã³å·®ãå®å šã«èŠãé ããŠããŸãã
è£ãè¿ããšãåãã§ãã¯ã ãã¯å€åãçªãæããŠããŸããTypeScript 7 ã®4åã®ãªãã§ã3ç§ãã7ç§ãŸã§ã°ãã€ããŸããããæãé
ãã£ã7ç§ã§ãç§»è¡åã®æé13ç§ãäžåããŸããããã®å·¥çšã¯ tsc --noEmit ãš biome lint ããŸãšããŠå®è¡ããŠãããã tsc åäœã®ççž®çã¯åé¢ã§ããŠããŸããããççž®ãã®ãã®ã¯å€åã«åãããªã倧ããã ãšèšããŸãã
äŸåã€ã³ã¹ããŒã«ã«ã€ããŠã¯ãTypeScript 7 ã Go 補ã®ãã€ãã£ããã€ããªããã©ãããã©ãŒã å¥ã®ããã±ãŒãžãšããŠé åžããŠãããä»åã®ããã¯ãã¡ã€ã«ã«ã¯20ãã©ãããã©ãŒã åãèšé²ãããŸãããå®éã«å±éãããã®ã¯å®è¡ç°å¢ã«äžèŽãã1ã€ã ãã§ãã解決察象ã¯å¢ããŸãããäžèšã®ãšããå€åå¹ ã®æ¹ã倧ãããä»åã®æéå·®ã®åå ãããã§ãããšã¯ç¢ºèªã§ããŸããã§ããã
ãããŠéèŠãªã®ã¯ããžã§ãå šäœã®æéãççž®ãããŠããªãããšã§ãã4åã®ç·æéã¯3å5ç§ãã5å48ç§ãŸã§æ£ãã°ããæãé ãåã¯ã©ã³ããŒã®å€åã§ãããå€§å¹ ã«äŒžã³ãŸãããåãã§ãã¯ã§åŸããã10ç§åŒ±ã¯ããã¹ããšãã«ãã倧åãå ããæ§æã§ã¯å šäœãžã®å¯äžãããããªãããã©ã³ããŒã®å€åå¹ ãããå°ããã®ã§ãããCI ãåçã«éããªãããšããæåŸ ã§å°å ¥ãããšãæè³å¯Ÿå¹æã®èª¬æã«å°ãããšã«ãªããŸãã
ã§ã¯ããªããã®ãããžã§ã¯ããäžããã®ããCI ã®ççž®ãã®ãã®ãç®çã§ã¯ãããŸããã§ããã倿Žéãããå°ãããã¢ããªã±ãŒã·ã§ã³ã³ãŒãã«è§Šããã«æžãã ããšãšã7.1 以éã«ä»ã®ãããžã§ã¯ããåãããšãã®åäŸãããªã¹ã¯ã®äœããšããã§å
ã«äœã£ãŠããããã£ãããšãçç±ã§ããåãã§ãã¯ã®ççž®ã¯ãéçºè
ãããŒã«ã«ã§ tsc ãåãé »åºŠãèããã°äœæã«ã¯å¹ããŸãããçšè°ã«äœ¿ããã»ã©ã®æ°åã§ã¯ãããŸããã
ãã¹ãã®çµæã¯å®å šã«äžèŽããŸããããŠããããã¹ã77ãã¡ã€ã«1,059ä»¶ãStorybook ã®ã€ã³ã¿ã©ã¯ã·ã§ã³ãã¹ã133ã¹ã€ãŒã1,112ä»¶ããããããç§»è¡åãšåãä»¶æ°ã§ééããŠããŸãã
noEmit æ§æã§ã¯ãTypeScript ã¯ææç©ãçŽæ¥çæããªã
åãã§ãã¯ã®ããŒãžã§ã³ãäžãããšãçæããã JavaScript ãå€ããã®ã§ã¯ãªãããšäžå®ã«ãªããããããŸããããã®ãããžã§ã¯ãã® tsconfig.json 㯠noEmit: true ãæå®ããŠãããtsc 㯠JavaScript ã1ãã€ããåºåããŸããã倿ãæ
åœããŠããã®ã¯ esbuild ãš rollup ã§ãã
å®éã«ç§»è¡ååŸã®ãã«ãææç©ãæ¯èŒããçµæã以äžã§ãã
| æ¯èŒé ç® | çµæ |
|---|---|
| çæãã£ã³ã¯ | 406åäž405åããã€ãåäœã§å®å šäžèŽ |
| å·®åã®ãã£ã1å | 44ãã€ãå·®ãæååãªãã©ã«10,367ä»¶ã¯ãã¹ãŠäžèŽ |
å·®åã®ãã£ã1åã«ã€ããŠã¯ãæååãªãã©ã«ãå®å šã«äžèŽããŠããããšãããminifier ã倿°åãå²ãåœãŠãé åºãããããã®ãšèããããŸãã確èªããç¯å²ã§ã¯ãæ©èœçãªå·®ããã¹ãã®å€±æã¯æ€åºãããŸããã§ããããã ãåäžããŒãžã§ã³ã§ã®åãã«ãã«ããéæ±ºå®æ§ã®æ€èšŒãŸã§ã¯è¡ã£ãŠããªãããããã®1åã®å·®ã®åå ã確å®ããããã§ã¯ãããŸããã
ãã®çµæã¯ noEmit æ§æã§ã®èŠ³æž¬ã§ããtsc ã« emit ãããŠãããããžã§ã¯ãã«ã¯åœãŠã¯ãŸããŸãããåãã§ãã¯å°çšããŒã«ãšããŠäœ¿ã£ãŠããå Žåã«éããææç©ãžã®åœ±é¿ã¯èããªããŠããããšèªãã§ãã ããã
èŠéã£ãåŽ â äœµçšæ§æãæã¡èŸŒã4ã€ã®éçšã³ã¹ã
æ®ã2ã€ã管çç»é¢ãšäž»å¬è åã CMS 㯠typescript-eslint ã䜿ã£ãŠããŸãããã®å ŽåãTypeScript 6 ãš 7 ãåå± ãããäœµçšæ§æãå¿ èŠã§ããå ¬åŒãæšå¥šãã圢ã¯ä»¥äžã§ãã
// package.jsonïŒTypeScript 7.0 å
¬åŒããã°ã®æšå¥šåœ¢ïŒ
{
"devDependencies": {
"@typescript/native": "npm:typescript@^7.0.2",
"typescript": "npm:@typescript/typescript6@^6.0.2"
}
}
èšå®èªäœã¯2è¡ã§ãããããå®éã«çµãã§ã¿ããšãæ³å®ããŠããªãã£ãåé¡ãç¶ããŸããã
1. npm ci ã倱æãããããã€ãæ¢ãŸã
æåã«èžãã ã®ã¯ããã§ããåå ã typescript-eslint ã ãšèããŠèª¿ã¹ãŠããŸããããå®éã«ã¯éããŸããããªããã®é ç®ã ãã¯äœµçšæ§æã«åºæã§ã¯ãªããTypeScript 7 ã«ç§»è¡ãããã¹ãŠã®ãããžã§ã¯ãã«åœãŠã¯ãŸããŸãã
æ¢ããŠããã®ã¯ i18next ãš react-i18next ã® optional peer dependency ã§ããã ããã㯠typescript ãä»»æã® peer ãšããŠå®£èšããŠãããåœæäœ¿ã£ãŠããããŒãžã§ã³ã®ç¯å²ã ^5 ã ã£ããããäœµçšæ§æã§ typescript ã®å®äœã 6.x ã«ãªããšè§£æ±ºã«å€±æããŸãã
åé¡ã¯ãããéçºç°å¢ã ãã®è©±ã§ã¯ãªãããšã§ããã³ã³ããã®ãã«ãå®çŸ©ã« npm ci ãå«ãŸããŠããå Žåãã€ã¡ãŒãžã®ãã«ãã倱æããŠãããã€ãæ¢ãŸããŸããããŒã«ã«ã§åãã§ãã¯ãéã£ãŠããŠãããªãªãŒã¹æã«åããŠæ°ã¥ãé¡ã®åé¡ã§ãã
ç§ãã¡ã¯æ€èšŒæ®µéã§æ°ã¥ããããæ¬çªåœ±é¿ã¯ãããŸããã§ããããnpm install ã¯éã£ãŠ npm ci ã ããèœã¡ããšããæåã ã£ãã®ã§ãããŒã«ã«ã§äœæ¥ããŠããéãæ°ã¥ããŸããã§ãããç§»è¡äœæ¥ã§ã¯æ©ã段éã§ npm ci ã詊ããŠãã ããã
ãã®ã±ãŒã¹èªäœã¯æ¢ã«è§£æ¶ããŠããŸããi18next 㯠26.3.6ïŒ2026幎7æ9æ¥å
¬éïŒãreact-i18next 㯠17.0.9 ã§ peer ã®ç¯å²ã ^5 || ^6 || ^7 ã«åºãããŸãããç§ãã¡ãèžãã ã®ã¯ãããããå€ãããŒãžã§ã³ã§åºå®ããŠããããã§ãã
ãã ãæèšã¯2ã€æ®ããŸãã
1ã€ç®ã¯ãåå ãçã£ãŠããããŒã«ãšã¯éããªãããšã§ããtypescript ã optional peer ãšããŠå®£èšããŠããã©ã€ãã©ãªã¯æ³åããå€ããããã optional ãªã®ã§æ®æ®µã¯ååšãæèããŸãããç§»è¡åã« npm ls typescript ã§åç
§å
ãæŽãåºããŠãããšããã®ææ»ããé¿ããããŸãã
2ã€ç®ã¯ããããäœµçšæ§æã«åºæã®åé¡ã§ã¯ãªãããšã§ããpeer ã®ç¯å²ã ^5 ã®ãŸãŸãªããäœµçšæ§æãçµãŸãã«çŽ ã® TypeScript 7 ãå
¥ããŠãåãããã«è§£æ±ºã«å€±æããŸããã€ãŸãåæ²ã®4åé¡ã§ã©ãã«è©²åœããããšã¯ç¡é¢ä¿ã«ãpeer dependency ã®ç£æ»ã¯å
šãããžã§ã¯ãã§å¿
èŠã§ããç§ãã¡ãå°å
¥ãã Web ã¢ããªã§é²èŠããªãã£ãã®ã¯ãåã«ãããã®ã©ã€ãã©ãªã䜿ã£ãŠããªãã£ãããã§ããã
2. .npmrc ã® legacy-peer-deps ã¯åé¿çã«ãªããªã
peer dependency ã®è¡çªãé»ãããå®çªã®ææ®µãšã㊠.npmrc ã« legacy-peer-deps=true ãæžãæ¹æ³ããããŸããããã¯äœ¿ããŸããã§ããã
ãã®ãã©ã°ã¯ peer dependency ã®èªåã€ã³ã¹ããŒã«ãæ¢ãããããããã¯ãã¡ã€ã«ãã134ããã±ãŒãžãæ¶ããŸãããã®äžã«ã¯ stylelint ã®ããã« CI ã§å®éã«äœ¿ã£ãŠããããŒã«ãå«ãŸããŠããŸããããšã©ãŒã¯åºãªããŸãŸãå¿ èŠãªããã±ãŒãžãå ¥ããªããªããŸãã
3. alias åãå€ãããš tsc ãå¥ã®ããŒãžã§ã³ãæã
åæ²ã®æšå¥šåœ¢ãªãåé¡ã¯èµ·ããŸãããTypeScript 7 åŽã tscãTypeScript 6 åŽã tsc6 ãæäŸãããããã³ãã³ãåãè¡çªããªãããã§ãã
ãã ããã®åœ¢ã«ãªã£ãã®ã¯ãäžåºŠåé¡ãå ±åãããããšã§ããå
¬åŒããã°ã¯åœåãTypeScript 7 åŽã® alias åã typescript-7 ãšããŠããŸããããšããã @typescript/typescript6 ã¯å
éšã§ @typescript/oldïŒå®äœã¯ TypeScript 6ïŒã«äŸåããŠããããã¡ãã tsc ãæäŸããŸããã€ãŸã tsc ãæäŸããããã±ãŒãžã2ã€ããç¶æ
ã§ããã
ãã®ãšã npm ã¯äŸåé¢ä¿ã®æ·±ãã§ã¯ãªããããã±ãŒãžåã®èŸæžé ã§åè
ãæ±ºããŸãã@typescript/old 㯠typescript-7 ããåã«äžŠã¶ãããnpx tsc ã TypeScript 6 ãæããŠããŸããšããå ±åãäžãããŸããïŒtypescript-go #4567ïŒãTypeScript ããŒã ã® Ryan Cavanaugh ããnpm ã¯äŸåã®æ·±ãã§ã¯ãªãèŸæžé ã§ bin ã®åè
ãæ±ºããããšåçããŠããŸãã
çŸåšã® @typescript/native ãšããååã¯ã@typescript/old ããèŸæžé ã§åã«æ¥ãŸããååã§åãããŠããããã§ãã
ãããã£ãŠãalias åãèªåã§å€ãããšåãçœ ã«ã¯ãŸããŸããè² ããŠãèŠåã¯äžååºããnpx tsc --noEmit ãå€ãããŒãžã§ã³ã§å®è¡ãããæ°ããã³ã³ãã€ã©ã§æ€æ»ããã€ãããå®éã«ã¯ãããŠããªãç¶æ
ã«ãªããŸããæ§æãå€ããã npx tsc --version ã§ç¢ºèªããŠãã ããã
4. ãšãã£ã¿ã¯ workspace ã®ããŒãžã§ã³ãéžã¹ãªã
äœµçšæ§æã§ã¯åŸæ¥ã® tsserver.js ãã€ã³ã¹ããŒã«ãããªããããVS Code ã®ãUse Workspace Versionãã§ TypeScript 7 ãéžã¶ããšãã§ããŸããã
ãã ãããã¯ããšãã£ã¿ã§ TypeScript 7 ã䜿ããªãããšããæå³ã§ã¯ãããŸãããå
¬åŒã VS Code åãã« TypeScript 7 æ¡åŒµïŒID 㯠TypeScriptTeam.native-previewïŒãæäŸããŠãããã€ã³ã¹ããŒã«ããã° TypeScript 7 ãæ¢å®ã®äœéšã«ãªããŸããã³ãã³ããã¬ããã®ãDisable TypeScript 7 Language Serverãã§ãã€ã§ãåãæ»ããŸããVisual Studio ã¯ãææ°çã§ããã°ã¯ãŒã¯ã¹ããŒã¹ãèŠãŠèªåçã«æå¹åããŸãã
åé¡ã¯ããšãã£ã¿åŽã®ããŒãžã§ã³ã package.json ããåãé¢ãããç¹ã§ããæ¡åŒµãå
¥ããŠããªãã¡ã³ããŒã®æå
ã§ã¯ TypeScript 6ãCI ã§ã¯ TypeScript 7 ãšããç¶æ
ã«ãªãã蚺æçµæã®å·®ç°ãçããããšãã«ç¢ºèªãã¹ãç®æã1ã€å¢ããŸããããŒã å
šäœã§æ¡åŒµã®å°å
¥ç¶æ³ãæããŠããå¿
èŠããããŸãã
èŠéãã®å€æ
ããããèžãŸããå€æã¯æ¬¡ã®ãšããã§ããåŸããããã®ã¯åãã§ãã¯å·¥çšã®ççž®ã®ã¿ã§ãæ¯æãã®ã¯ãããã€åæ¢ã®ãªã¹ã¯ãšãäžèš4ã€ãçè§£ããŠããã¡ã³ããŒãç¶æãç¶ããã³ã¹ãã§ãã çŸæç¹ã§ã¯åŸ ã€æ¹ãå®ããšçµè«ããŸããã
ãã ããã®å€æã¯åŸ æ©æéã®èŠèŸŒã¿ã«äŸåããŠããŸãã7.1 ã®ãªãªãŒã¹ãé ããããããŒã«åŽã®å¯Ÿå¿ã«ããã«æéãããã£ããããã°ãäœµçšæ§æãçµãã§å ã«æ©æµãåŸãæ¹ãåççã«ãªãå¯èœæ§ã¯ãããŸããç§ãã¡ã¯ 7.1 ã®ååãèŠããæç¹ã§å€æãèŠçŽãäºå®ã§ãã
ãªãäž»å¬è åã CMS ã«ã€ããŠã¯ããããã CI ã§åãã§ãã¯ãå®è¡ããŠããªããããç§»è¡ããŠãççž®ãããå·¥çšãååšããŸããã§ããã
3ãããžã§ã¯ããæšªã«äžŠã¹ã
ãããŸã§ã®å€æãäžèЧã«ããŸãã
åãã§ãã¯æéã¯ããŒã«ã«ã§èšæž¬ããäžå€®å€ã§ã.tsbuildinfo ãåé€ããŠ5åãã€å®è¡ããå€ã§ãã3ãããžã§ã¯ããæ¯èŒã§ãããããç§»è¡åã®åŽã¯ TypeScript 6.0.3 ã«æããŠèšæž¬ããŠããŸãïŒWeb ã¢ããªã®å®éã®ç§»è¡åããŒãžã§ã³ã¯ 5.9.2 ã§ããïŒãå
ã»ã©ã® CI ã®æ°å€ã¯ biome lint ãå«ãå·¥çšå
šäœãªã®ã§ããã¡ããšã¯å¥ã®èšæž¬ã§ãã
| ãããžã§ã¯ã | lint | åãã§ãã¯ïŒ6.0.3 â 7.0.2ïŒ | 倿 |
|---|---|---|---|
| åå è åã Web ã¢ã㪠| BiomeïŒCompiler API éäŸåïŒ | 18.39ç§ â 2.39ç§ | å°å ¥ |
| 管çç»é¢ | typescript-eslintïŒäŸåïŒ | 9.68ç§ â 1.83ç§ | èŠéã |
| äž»å¬è åã CMS | typescript-eslintïŒäŸåïŒ | 4.48ç§ â 0.93ç§ | èŠéã |
çµæãåããã®ã¯ lint ã§ããã Biome ã䜿ã£ãŠãã1ä»¶ã¯çŽ ã® TypeScript 7 ã«äžããããtypescript-eslint ã䜿ã£ãŠãã2ä»¶ã¯äœµçšæ§æãèŠãããèŠéãã«ãªã£ãŠããŸããèŠéã£ã2ã€ã¯ãããŒã«ã察å¿ãããŸã§åŸ ã€ããšããåãçç±ã§ãããCMS ã¯ããšããš CI ã§åãã§ãã¯ãå®è¡ããŠããªããããä»®ã«ç§»è¡ããŠã CI äžã®ççž®ã¯ãŒãã§ããã
ãªããããã¯ãlint ããéãã°å¿ ãå°å ¥ã§ããããšããæå³ã§ã¯ãããŸãããå€æè»žã¯ãããŸã§ Compiler API ãžã®äŸåã§ãlint 以å€ã«ã ts-jest ã ts-node ãåãäœçœ®ã«ãããŸããä»åã®3ä»¶ã§ã¯ãããŸããŸãã®äŸåã®æç¡ã lint ã®éžæãšããŠçŸããããšããã®ãæ£ç¢ºãªãšããã§ãã
èŠæš¡ãšé«éåã®åçã䞊ã¹ããšããã1ã€åããããšããããŸãã
| ãããžã§ã¯ã | èªåã® .ts/.tsx | tsc ããã°ã©ã å šäœ | åç |
|---|---|---|---|
| åå è åã Web ã¢ã㪠| 929 | 2,144 | 7.7x |
| 管çç»é¢ | 394 | 2,181 | 5.3x |
| äž»å¬è åã CMS | 204 | 599 | 4.8x |
ä»åã®3ä»¶ã§ã¯ãåçã¯èªåã³ãŒãã®éãšåãé åºã«ãªããŸããã äžæ¹ãããã°ã©ã å
šäœã®ãã¡ã€ã«æ°ãšã¯å¯Ÿå¿ããŠããŸããã管çç»é¢ãš Web ã¢ããªã¯ .d.ts ãå«ãããã¡ã€ã«æ°ãã»ãŒåãïŒ2,181 ãš 2,144ïŒãªã®ã«ãåç㯠5.3x ãš 7.7x ã§éããŸãã
ãã ã3ä»¶ã ãã®èŠ³æž¬ã§ãåã®è€éããäŸåããåå®çŸ©ã®éãšãã£ãä»ã®èŠå ãæããããã§ã¯ãããŸãããèªåã³ãŒãã®éãåçå·®ã®åå ã ãšæå®ã¯ã§ããŸããã
ããã§ãå®åäžã®ç€ºåã¯ãããŸããå ¬åŒã瀺ã10åååŸã®æ°åã¯å€§èŠæš¡ãªã³ãŒãããŒã¹ã§ã®å€ã§ãããæå ã®ãããžã§ã¯ãã§åãåçãåºããšã¯éããŸããã æåŸ å€ã¯èªåã®ç°å¢ã§æž¬ã£ãŠããæ±ºããŠãã ããã
第3ã®éžæè¢ â lint ãä¹ãæãã
ãããŸã§ãäœµçšæ§æãçµããããåŸ ã€ãã®2æã§æžããŠããŸããããåå²ç¹ã lint ã§ãã以äžãlint èªäœãä¹ãæãããšããéžæè¢ããããŸããå®éãç§ãã¡ãå°å ¥ã§ãã1ä»¶ã¯ãããšããš Biome ã䜿ã£ãŠããããçŽ ã® TypeScript 7 ã«äžããããŸããã
ãã ãããããã€ã³çœ®æã§ã¯ãããŸãããBiome ã«ãåæ å ±ã䜿ãã«ãŒã«çŸ€ïŒTypes ãã¡ã€ã³ïŒã¯ãããŸãããå ¬åŒããã¥ã¡ã³ãã¯ãã®ä»çµã¿ããã説æããŠããŸãã
This domain contains rules that perform project-level analysis. This includes our module graph for dependency resolution. When enabling rules that belong to this domain, Biome will scan the entire project, and it will enable the inference engine to resolve and flat types.
åã解決ããã®ã¯ TypeScript ã®ãã§ãã«ãŒã§ã¯ãªããBiome èªèº«ã®æšè«ãšã³ãžã³ã§ããå ¬åŒããããžã§ã¯ãå šäœãã¹ãã£ã³ãããã lint ã®æ§èœã«åœ±é¿ãåºããšæèšããŠããŸãã
ãããŠéèŠãªç¹ãšããŠãnoFloatingPromises ã noMisusedPromises ãšãã£ã代衚çãªã«ãŒã«ã¯ããããã nurseryïŒå®éšçïŒæ±ãã§ããtypes: "recommended" ãæå®ããŠã nursery ã®ã«ãŒã«ã¯æå¹ã«ãªããªããããæç€ºçã«æå¹åããå¿
èŠããããŸããtypescript-eslint ã®å®å®ããã«ãŒã«ããã®ãŸãŸçœ®ãæããããæ®µéã§ã¯ãããŸããã
ã€ãŸã typescript-eslint ã®åæ å ±ã«ãŒã«ã«åŒ·ãäŸåããŠããã»ã©ãä¹ãæãã¯ãTypeScript 7 ã®ããã« lint ã®æ€æ»å 容ãå€ããã倿ã«ãªããŸãã倱ãã«ãŒã«ãšãåŸãããåãã§ãã¯ã®ççž®ã倩秀ã«ããã話ã§ãã
ç§ãã¡ã¯ãã®ä¹ãæããæ€èšŒããŠããŸããããã ãéžæè¢ããäœµçšæ§æïŒåŸ ã€ãã®2ã€ãããªããšæã蟌ããšã倿ã誀ããŸããlint ãå€ããããäœå°ããããªãããããæãçã®è¯ãè§£ã«ãªãããšããããŸãã
倿ãããŒãšãäœµçšæ§æãæ€å»ãããšã
倿ã®åå²ãå ã«ãŸãšããŸããADR ãæ€èšã¡ã¢ã«ã¯ãã®è¡šã䜿ã£ãŠãã ããã
| ç¶æ³ | 倿 | åè©äŸ¡ã®æ¡ä»¶ |
|---|---|---|
| Compiler API äŸåãªã | ç§»è¡ãæ€èšãã | â |
| äŸåããã»CI ããå€ãã | å€ããŠç§»è¡ãæ€èšãã | â |
| äŸåããã»lint ãåå ã§ä¹ãæãå¯èœ | lint ã®ä¹ãæããæ€èšãã | â |
| äŸåããã»åãã§ãã¯ã CI ã®å€§åãå ãã | äœµçšæ§æãæ€èšãã | ããŒã«ã®æ° API å¯Ÿå¿ |
| äŸåããã»åãã§ãã¯ã®æ¯éãå°ãã | åŸ ã€ | ããŒã«ã®æ° API å¯Ÿå¿ |
ãã®ããã§ãå®éã«ç¢ºèªããæé ã¯æ¬¡ã®ãšããã§ããæé 1ãšæé 2ã¯å¥ç©ãªã®ã§ãæ··åããªãã§ãã ããã
- Compiler API ã
importããããŒã«ãããã確èªããã typescript-eslintãts-jest ã代衚äŸã§ããts-nodeãts-loaderãvue-tsc ãªã©ã該åœããå¯èœæ§ããããŸãããã£ãå Žåã¯ãCI ã§å€ããããæ€èšããå€ããªããã°äœµçšæ§æãçµãã 7.1 ãåŸ ã€ãã®å€æã«ãªããŸãã npm ls typescriptã§ãtypescriptã peer dependency ã«æã€ã©ã€ãã©ãªãæŽãåºãã ãã¡ãã¯æé 1ãšã¯å¥ã®éåã§ãAPI ã䜿ã£ãŠããªããŠã該åœããŸããç¯å²ãå€ãã ããªãã©ã€ãã©ãªã®ããŒãžã§ã³ã¢ããã§è§£æ±ºããããã7.1 ãåŸ ã€çç±ã«ã¯ãªããŸããã- å
¬åŒã®éäºæäžèЧã«å¯Ÿã㊠tsconfig.json ãæ€æ»ããã
baseUrlã®ã»ãã«target: es5ãå€ãmoduleResolutionãrootDirãštypesã®ããã©ã«ã倿Žãªã©ããããŸããå¿ èŠãªå€æŽã¯æ§æããšã«ç°ãªããŸãã - çŸåšã®åãã§ãã¯æéãšãããã CI å šäœã«å ããå²åãæž¬ãã ãããå°ãããªããæ¥ãã§ç§»è¡ãã䟿çãããã ãå°ãããªããŸãã
- æ€èšŒãã©ã³ãã§åãã§ãã¯ã»ãã«ãã»ãã¹ãã»ãšãã£ã¿åäœã確èªããã ããããŠ
npx tsc --versionã§ãå®éã« 7.x ã䜿ãããŠãããã確èªããŠãã ããã
äœµçšæ§æãçµãã å Žåããããæ€å»ã§ããã®ã¯ 7.1 ããªãªãŒã¹ãããæç¹ã§ã¯ãªããå©çšããŠããããŒã«ãæ°ãã API ãžã®å¯Ÿå¿ãçµããæç¹ã§ããå
¬åŒã¯ "a new (and different) API" ãšè¡šçŸããŠãããAPI ãå·æ°ããã以äžãããŒã«åŽã®ç§»æ€ã«ã¯ããã«æéããããå¯èœæ§ããããŸããæ€å»ãã®ãã®ã¯ãalias ãéåžžã®äŸåã«æ»ãã.npmrc ã®åé¿çãåé€ãã.bin ã®ããŒãžã§ã³ã確èªããããšããé ã§é²ããããŸããäœµçšæ§æãçµãå Žåã¯ãæ€å»ã®ææãèªããªãããšãåæã«ãèšå®ã®çç±ãã³ã¡ã³ããšããŠæ®ããŠãããŠãã ããã
ãŸãšã
TypeScript 7.0 ã¯ãå šéšäžããããå šéšåŸ ã€ããã®äºæã§ã¯ãããŸããã
- æåã®åãåã㯠Compiler API ã
importããããŒã«ã«äŸåããŠããã ã§ããç§ãã¡ã®3ä»¶ã§ã¯ããã㯠lint ã«äœã䜿ã£ãŠãããã®éããšããŠçŸããŸãããããã§åãããå ã«ãpeer dependency ã®ç¶æ³ã»tsconfig ã®éäºæã»CI ã§åŸããã广ãšãã倿ãç¶ããŸã - 該åœããªããããžã§ã¯ããªãç§»è¡ã¯çŸå®çã§ããTECH PLAY ã®äºäŸã§ã¯4ãã¡ã€ã«ã»è¿œå 15è¡ã§ãã¢ããªã±ãŒã·ã§ã³ã³ãŒãã®å€æŽã¯0è¡ã§ããããã ãå¿ èŠãªå€æŽé㯠tsconfig.json ã®ç¶æ ã«ãã£ãŠå€ãããŸã
- 該åœãããããžã§ã¯ãã«ã€ããŠã¯ãç§ãã¡ã¯ 7.1 ãåŸ ã€æ¹ãç·ã³ã¹ãã¯äœããšå€æããŸããããã ãåŸ æ©æé㯠7.1 ã®ãªãªãŒã¹ææã ãã§ãªããããŒã«åŽã®å¯Ÿå¿ææã«ãå·Šå³ãããŸã
- éžæè¢ã¯ãäœµçšæ§æïŒåŸ ã€ãã®2ã€ã§ã¯ãããŸãããåå ã lint ã«ãããªã lint ãä¹ãæãããšããéããããŸãããã ã Biome ã®åæ å ±ã«ãŒã«ã¯ãŸã å®éšçãªæ®µéãªã®ã§ã倱ããã®ãšåŸããã®ãæ¯ã¹ãŠæ±ºããŠãã ãã
ãŸãæå
ã® package.json ãéããŠãæ¬èšäºã®4åé¡ã®ã©ãã«åœãŠã¯ãŸããã確èªããŠãã ãããããã㊠npm ls typescript ãå®è¡ããŠãããšãç§»è¡æã« npm ci ãèœã¡ãäºæ
ãé²ããŸãã
ç§»è¡æé ã®è©³çްãtsconfig.json ã®ç Žå£ç倿Žã®äžèЧãé床ãã³ãããŒã¯ã«ã€ããŠã¯ãTypeScript 7.0 RCã®10åéã¯æ¬åœãïŒå®ãããžã§ã¯ãã§6.7ã8åã宿ž¬ãç§»è¡ã®èœãšã穎ãè§£èª¬ã§æ±ã£ãŠããŸããããããŠåç §ããŠãã ããã
åèæç®
- Announcing TypeScript 7.0 - TypeScript BlogïŒ2026幎7æ8æ¥ïŒ
- Announcing TypeScript 7.0 RC - TypeScript BlogïŒ2026幎6æ18æ¥ïŒ
- Enhancement: Use TS 7 (tsgo / typescript-go) for type information - typescript-eslint
tscincorrectly points to v6 rather than v7 - typescript-go- TypeScript 7.0 RCã®10åéã¯æ¬åœãïŒå®ãããžã§ã¯ãã§6.7ã8åã宿ž¬ãç§»è¡ã®èœãšã穎ã解説 - TECH PLAYïŒ2026幎6æ28æ¥ïŒ
ããããã€ãã³ã
ããããã®èšäº

TypeScript 7.0 RCã®10åéã¯æ¬åœãïŒå®ãããžã§ã¯ãã§6.7ã8åã宿ž¬ãç§»è¡ã®èœãšã穎ã解説

GitHub Actions parallel steps + 4vCPU 宿ž¬æ€èšŒ â 45%ççž®+ã³ã¹ãæžã®æ¡ä»¶ãšã广ãŒãã ã£ãæ¡ä»¶











