InfoGrab DocsInfoGrab Docs

TypeScript

GitLab 프론트엔드 개발에서 TypeScript를 사용하는 방법과 권장 사항을 설명합니다.

GitLab과 TypeScript의 역사 # TypeScript는 GitLab에서 수년간 논의 되고, 검토되고, 추진되고, 거부되어 왔습니다. 일반적인 결론은, 비용이 이점을 초과하기 때문에 TypeScript를 메인 프로젝트에 통합하기 어렵다는 것입니다. 메인 프로젝트에는 강력한 타입이 적용되지 않은 기존 코드가 매우 많습니다 . 메인 프로젝트의 주요 기여자 모두가 TypeScript에 익숙한 것은 아닙니다. 메인 프로젝트 외에도 TypeScript는 몇 가지 위성 프로젝트에서 유용하게 사용되었습니다. TypeScript를 사용하는 프로젝트 # 다음 GitLab 프로젝트는 TypeScript를 사용합니다: gitlab-web-ide gitlab-vscode-extension gitlab-language-server-for-code-suggestions gitlab-org/cluster-integration/javascript-client 권장 사항 # ESLint 및 TypeScript 구성 설정 # 새 TypeScript 프로젝트를 설정할 때는 ESLint와 TypeScript에 대해 엄격한 타입 안전성 규칙을 구성하세요. 이를 통해 프로젝트가 최대한 타입 안전하게 유지됩니다. GitLab for VS Code 확장 프로젝트는 TypeScript 프로젝트의 보일러플레이트 및 구성에 대한 좋은 모델입니다. 해당 프로젝트에서 tsconfig.json 및 .eslintrc.json 을 복사하는 것을 고려하세요. tsconfig.json 에 대해: "strict": true 를 사용하세요. 이는 프로젝트에서 가장 강력한 타입 검사 기능을 강제하고 타입 안전성 재정의를 금지합니다. "skipLibCheck": true 를 사용하세요. 이는 node_modules 의 모든 .d.ts 파일이 아닌, 참조된 .d.ts 파일만 검사하여 컴파일 시간을 개선합니다. .eslintrc.json (또는 .eslintrc.js )에 대해: TypeScript 전용 파싱 및 린팅이 **/*.ts 파일에 대한 overrides 에 배치되어 있는지 확인하세요. 이렇게 하면 일반 .js 파일에 대한 린팅이 TypeScript 전용 규칙의 영향을 받지 않습니다. 다음과 같이 합리적인 기본값을 가진 plugin:@typescript-eslint/recommended 를 확장하세요: "@typescript-eslint/no-explicit-any": "error" "@typescript-eslint/no-unsafe-assignment": "error" "@typescript-eslint/no-unsafe-return": "error" any 사용 피하기 # any 는 최대한 피하세요. 프로젝트의 린터에 이미 구성되어 있어야 하지만, 여기서 별도로 강조할 가치가 있습니다. 개발자들은 HTTP 응답을 처리하거나 타입이 없는 라이브러리와 상호작용하는 것처럼 도메인 경계를 넘나드는 데이터 구조를 다룰 때 흔히 any 에 의존합니다. 처음에는 편리해 보일 수 있습니다. 그러나