Node.js v23.6.0: Built-in TypeScript 지원이 드디어 여기에
Lukas Schneider
DevOps Engineer · Leapcell

Node.js v23.6.0이 최근에 릴리스되었으며, 중요한 업데이트가 포함되어 있습니다. 바로 --experimental-strip-types
플래그가 해제된 것입니다. 이는 이제 Node.js가 추가 구성 없이 TypeScript 파일을 기본적으로 실행할 수 있음을 의미합니다.
TypeScript가 중요한 이유
TypeScript는 선택적 정적 타이핑과 인터페이스, 제네릭 및 타입 추론과 같은 고급 기능을 도입하여 JavaScript를 향상시킵니다. 수년에 걸쳐 대규모 JavaScript 애플리케이션의 사실상의 표준이 되었습니다. Node.js에 통합됨으로써 TypeScript는 백엔드 개발자에게 더욱 쉽게 접근할 수 있게 되었습니다.
Node.js에서 TypeScript 실행하기
Node.js에서 TypeScript 파일을 실행하려면 다음을 실행하기만 하면 됩니다.
node index.ts
.ts
파일 외에도 Node.js는 .mts
및 .cts
파일도 지원하지만 .tsx
는 지원하지 않습니다.
Node.js가 TypeScript를 실행하는 방법
Node.js는 swc
버전을 사용하여 타입 어노테이션을 제거하고 실행할 수 있는 일반 JavaScript 코드를 남깁니다.
Node.js에서 TypeScript 실행 시 고려 사항
로컬 Import는 TypeScript 파일을 참조해야 합니다.
번들러가 없는 환경에서 TypeScript를 사용하는 경우 이전에 다음과 같은 import를 작성했을 수 있습니다.
import { myFunction } from './my-module.js';
from './my-module.ts'
대신
왜 그럴까요? TypeScript 컴파일러는 './my-module.js'
와 같은 모듈 확장자를 수정하지 않으므로 개발자는 트랜스파일된 JavaScript 출력과 일치하는 확장자를 사용해야 했습니다.
그러나 Node.js는 파일 확장자를 사용하여 모듈 유형을 결정하므로 import에서 TypeScript 파일을 명시적으로 참조해야 합니다.
import { myFunction } from './my-module.ts';
Node.js는 파일 확장자를 사용하여 모듈 유형을 결정하기 때문에 이러한 변경이 필요합니다. 대조적으로 TypeScript 컴파일러는 이전에 './my-module.js'
와 같은 모듈 지정자를 변경하지 않은 상태로 두어 개발자가 트랜스파일된 출력에 적응해야 했습니다.
내장 타입 검사 없음
Node.js는 TypeScript 파일을 실행할 때 타입 검사를 수행하지 않습니다. 타입 안전성을 보장하려면 TypeScript 컴파일러(tsc
) 또는 유사한 도구를 로컬에서 실행해야 합니다. 예를 들면 다음과 같습니다.
tsc --watch
또한 tsconfig.json
을 올바르게 구성하는 것은 타입 검사와 코딩 간의 일관성을 위해 중요합니다.
{ "compilerOptions": { "target": "esnext", "module": "nodenext", "allowImportingTsExtensions": true, "rewriteRelativeImportExtensions": true, "verbatimModuleSyntax": true } }
allowImportingTsExtensions
:.js
를 가져오는 대신.ts
파일을 직접 가져올 수 있습니다.rewriteRelativeImportExtensions
:.ts
파일에서.js
파일로 상대 import를 다시 작성합니다.verbatimModuleSyntax
: 타입을 가져올 때type
키워드를 사용하지 않으면 경고합니다.
타입을 Import할 때 type
키워드를 사용해야 합니다.
타입 스트리핑이 제거되지 않도록 타입을 import할 때는 type
키워드가 필요합니다.
// Type import import type { Item } from './my-module.ts'; // Inline type import import { myFunction, type Item } from './my-module.ts';
Node.js에서 TypeScript 실행의 제한 사항
비 JavaScript 언어 기능 지원 안 함
다음과 같은 특정 TypeScript 특정 기능은 지원되지 않습니다.
- 열거형
- 네임스페이스
- 클래스 생성자의 매개변수 속성
이러한 기능을 활성화하려면 --experimental-transform-types
플래그를 추가할 수 있습니다.
TypeScript에서 제공하는 미래의 JavaScript 기능 지원 안 함
TypeScript를 사용하면 트랜스파일하여 현재 JavaScript 엔진에서 곧 출시될 JavaScript 기능(예: 데코레이터)을 실행할 수 있습니다.
그러나 Node.js는 TypeScript 타입만 제거하므로 이러한 기능은 지원되지 않습니다.
이전 Node.js 버전에서 TypeScript를 실행할 수 있습니까?
X의 Marco에 따르면 TypeScript 지원은 Node.js v22에는 제공되지만 v20에는 제공되지 않습니다.
참고 자료
Leapcell은 Node.js 프로젝트를 클라우드에 배포하기 위한 최고의 선택입니다.
Leapcell은 웹 호스팅, 비동기 작업 및 Redis를 위한 차세대 서버리스 플랫폼입니다.
다중 언어 지원
- Node.js, Python, Go 또는 Rust로 개발하십시오.
무제한 프로젝트를 무료로 배포
- 사용량에 대해서만 비용을 지불합니다. 요청이나 요금이 없습니다.
탁월한 비용 효율성
- 유휴 요금 없이 사용량에 따라 지불합니다.
- 예: $25는 평균 응답 시간 60ms에서 694만 건의 요청을 지원합니다.
간소화된 개발자 경험
- 간편한 설정을 위한 직관적인 UI.
- 완전 자동화된 CI/CD 파이프라인 및 GitOps 통합.
- 실행 가능한 통찰력을 위한 실시간 메트릭 및 로깅.
간편한 확장성 및 고성능
- 고도의 동시성을 쉽게 처리하기 위한 자동 확장.
- 운영 오버헤드가 전혀 없습니다. 구축에만 집중하십시오.
문서에서 자세히 알아보십시오!
X에서 팔로우하세요: @LeapcellHQ