AX Code 받기 · 무료문서

이 페이지는 영어 문서의 번역입니다. 명령, 식별자, 예제는 그대로입니다. 런타임 7.24.4 · SDK 2.6.7. 영어 원문

TypeScript 네이티브 지원

상태: 소스에서는 활성입니다. 패키지로 제공되는 런타임 릴리스는 대기 중입니다 범위: 현재 상태의 소스 도구 체인과 언어 서비스 최종 검토: 2026-09-14 담당: AX Code 유지관리자

AX Code는 워크스페이스 검사, SDK 산출, 내장 JavaScript와 TypeScript 언어 서버에 공식 Go 기반 TypeScript 7.0.2 컴파일러를 사용합니다. 언어 서버는 함께 제공되는 네이티브 실행 파일을 --lsp --stdio로 직접 실행합니다. 레지스트리 실행기를 부르거나, 고정되지 않은 언어 서버 버전을 다운로드하지 않습니다. AX Code를 쓰는 데 Go 도구 체인은 필요하지 않습니다.

선택적 의존성을 포함하여 pnpm install로 의존성을 설치합니다. 네이티브 컴파일러에는 맞는 OS와 CPU 패키지가 필요합니다. 독립 실행 빌드는 전달 전에 그 패키지를 준비하고 검증합니다. 바이너리가 없거나 맞지 않으면, JavaScript 서버를 조용히 시작하는 대신 조치할 수 있는 오류를 냅니다.

컴파일러 API 호환성

워크스페이스는 @typescript/native를 npm:typescript@7.0.2에 고정하고, 레거시 JavaScript Compiler API를 가져오는 도구를 위해 typescript를 npm:@typescript/typescript6@6.0.2의 별칭으로 둡니다. 타입 검사와 SDK 산출은 네이티브 컴파일러를 사용합니다. 호환성 API는 기본 언어 서버가 아닙니다.

Vue, Svelte, Astro용 프레임워크 도구는 자신의 서버 통합을 사용합니다. TypeScript 라이브러리 호환성이 컴파일러 플러그인 지원을 뜻하지는 않습니다. SolidJS JSX 변환은 계속 Babel을 거칩니다. 런타임 테스트와 산출물은 타입 검사가 성공했더라도 그와 별개로 통과해야 합니다.

진단과 메모리

네이티브 TypeScript는 끌어오는 방식의 진단을 사용합니다. AX Code는 호출자가 진단을 기다리라고 하거나 진단 목록을 모을 때 이를 요청합니다. 파일만 동기화한다고 타입 검사를 기다리지는 않습니다. 편집은 의존하는 캐시 결과를 무효로 만듭니다. 오래되었거나 대기 중이거나 실패한 목록은 집계 진단 API가 부분적이거나 저하된 상태로 보고합니다. 끌어오기가 성공하면 그 파일이 새로 고쳐집니다. 서버 새로 고침 요청은 캐시된 결과를 오래된 것으로 표시하고, 다음 진단 요청이 필요할 때 새로 고칩니다. 백그라운드 서버 트래픽은 유휴 수명을 갱신하지 않습니다. 파일 편집은 이전에 요청한 문서를 백그라운드에서 여전히 새로 고칠 수 있습니다. 원시 기록 API는 제한된 수집 예산 안에서 오래된 결과를 새로 고치고, 불완전한 목록은 거부합니다. 편집 도구는 성공한 파일 편집을 잃지 않은 채 이 상태를 알립니다. 다른 언어 서버는 기존의 밀어 넣는 진단 동작을 유지합니다.

같은 파일에 대해 겹치는 명시적 진단 대기는 같은 워크스페이스 세대 안에서만 요청을 공유합니다. 이어지는 요청은 여전히 새로 고칩니다. 워크스페이스가 바뀌면 진행 중인 이전 요청은 재사용되지 않습니다. 백그라운드 새로 고침과 목록 새로 고침은 문서 잠금을 기다린 뒤 신선도를 다시 확인합니다.

성공한 패치의 삭제와 이동은 언어 서비스에서 제거된 소스 문서를 닫습니다. 실패한 패치 트랜잭션은 문서 상태를 유지합니다. 정리에는 공유되는 2초 기한이 있으며, 같은 패치의 나중 작업이 다시 만든 경로는 건너뜁니다. 불완전한 정리는 저장된 편집을 되돌리지 않고 알립니다. 서버로의 전달이 시간 초과되면, 그 클라이언트가 다시 시작될 때까지 진단은 불완전한 채로 남습니다.

유휴 언어 서버는 일반 메모리 프로필에서는 30분 뒤에, AX_CODE_MEMORY_PROFILE=low에서는 5분 뒤에 회수됩니다. 회수는 기존의 1분 건강 검사 간격으로 실행되며, 활성 요청과 대기열의 요청이 가라앉기를 기다립니다. 서버는 필요할 때 다시 시작합니다. AX_CODE_LSP_IDLE_MS는 유휴 시간을 밀리초 단위로 덮어씁니다. 0는 유휴 회수를 끕니다. 잘못된 값은 프로필 기본값을 사용합니다. 이 설정은 프로세스 RAM 상한이나 기계 전체의 예산을 두지 않습니다. 추측에 의한 예열은 계속 선택 사항입니다.

서버를 회수하면 그 진단 목록이 버려집니다. 집계 결과는, 이전에 연 문서가 다시 열리고 검사되거나 명시적으로 제거될 때까지 저하된 상태로 표시됩니다. 원시 목록 API는 불완전한 범위를 거부합니다. 범위 원장은 경로 2,000개로 제한됩니다. 넘치면 프로젝트 인스턴스가 폐기될 때까지 보수적으로 불완전한 상태로 남습니다. 빈 서버를 회수해도 범위는 잃지 않습니다. 편집 도구는 저장된 변경을 보존하고, 진단이 불완전하다고 알립니다. 프로젝트가 깨끗한지 확인하려면 프로젝트 전체 타입 검사를 사용합니다.

네이티브 컴파일이 특정한 상주 메모리 감소를 보장하지는 않습니다. 메모리에 대한 주장을 하기 전에 같은 프로젝트, 연 문서, 요청, 프로세스 트리 RSS를 비교합니다.

명시적 서버 덮어쓰기

기존의 신뢰된 lsp.typescript.command 구성은 여전히 내장 네이티브 서버를 덮어씁니다. 레거시 서버를 쓰려면 프로젝트에 서버와 호환되는 TypeScript SDK를 설치하고 고정한 뒤, command을 그 설치된 실행 파일로 --stdio와 함께 설정합니다. 고정되지 않은 npx 명령은 피합니다. 덮어쓰기는 명시적입니다. 네이티브 컴파일러를 쓸 수 없을 때 AX Code가 자동으로 다른 경로로 넘어가지는 않습니다.

업스트림: TypeScript 7 발표.

TypeScript 7.0.2의 저장된 문서 호환성

네이티브 7.0.2 서버는 파일 감시 트래픽이 저장된 편집과 겹치면 더 이전의 진단 스냅샷을 반환할 수 있습니다. AX Code는 진단을 요청하기 전에, 바로 그 서버 버전에 대해 변경된 문서를 닫았다가 다시 엽니다. 제한된 문서 질의 하나가 다시 열기 전에 미뤄 둔 닫기를 비웁니다. 다른 질의는 이 교체를 기다립니다. 이렇게 하면 변경된 문서 전체가 보내집니다. 바뀌지 않은 문서는 여전히 겹치는 요청을 재사용합니다. 다른 서버 버전은 협상된 동기화 모드를 유지합니다. 중단된 교체는 언어 서버가 다시 시작될 때까지 불완전한 채로 남습니다.