Hire +Plus 자체 문서화: V1 (2)
4802 단어 beginnerstypescriptreactwebdev
내가 다루는 것
이 앱의 주요 부분을 제작하기 전에 작게 시작하여 확장하고 싶습니다. 일찍 시작하기 위해 typescript와 cypress 테스트를 일찍 추가했습니다.
Typescript 추가
기존 프로젝트이기 때문에 별도로 TypeScript를 설치해야 합니다.
첫째: TypeScript를 설치하는 데 필요한 모든 것을 설치합니다.
npm install --save typescript @types/node @types/react @types/react-dom @types/jest
둘째: 루트 디렉터리에
tsconfig.json
파일을 만들고 붙여넣습니다. 모든 것이 작동하도록 하는 기본 TypeScript 설정입니다.{
"compilerOptions": {
"target": "es5",
"lib": ["dom", "dom.iterable", "esnext"],
"downlevelIteration": true,
"allowJs": true,
"skipLibCheck": true,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"strict": true,
"forceConsistentCasingInFileNames": true,
"noFallthroughCasesInSwitch": true,
"module": "esnext",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
"noEmit": true,
"jsx": "react-jsx"
},
"include": ["src"]
}
마지막으로 반응 구성 요소 확장을
.js/.jsx
에서 typescript 확장( .ts/tsx
)으로 변환했습니다.구성 요소를 Typescript로 실행
여기서 크게 달라진 것 같지는 않지만 구성 요소의 확장자를
.tsx
로 변경하고 TypeScript로 변환했습니다. The const Launch: React.FunctionalComponent = () =>
는 이 구성 요소 유형이 소품이 없는 기능적 구성 요소임을 보장합니다. 간단한 전환이지만 진행하면서 더 복잡해집니다.![](https://s1.md5.ltd/image/a19cb6af7ef0bea36a1380ab7a2269b4.png)
index.tsx 파일의 오류 수정
Launch 구성 요소를 변환할 때 이 오류가 발생했습니다. 나는 typescript가 null일 수 있기 때문에 ID가 루트인 요소가
dom
에 있는지 확인해야 한다는 것을 (인터넷 검색을 통해) 발견했습니다.![](https://s1.md5.ltd/image/ce1c310e145705fbd5ad6879eb9df166.png)
해결책은 ! 루트 요소를 잡을 때. ID가 루트인 요소가 항상 있는지 확인합니다.
link to solution on stackoverflow
![](https://s1.md5.ltd/image/e2a84d9072241cac05e4d03e3bea8d1d.png)
이제 해당 오류를 수정했으므로 공식적으로 TypeScript를 구성하고 작동합니다. 테스트에 들어가겠습니다.
React와 함께 Cypress 사용
cypress를 사용하여 테스트를 실행하겠습니다. 설정은 간단했습니다(기쁩니다!). Cypress에는 테스트를 실행할 대시보드와 환경이 있습니다. Cypress는 cypress를 사용하여 단위, 통합 및 엔드 투 엔드 테스트를 실행할 수 있습니다.
첫 번째: npm으로 cypress 설치
npm install cypress --save-dev
둘째: 사이프러스 환경 개방
npx cypress open
두 가지 일이 일어날 것입니다.
마지막으로 시작 페이지가 올바르게 렌더링되는지 확인하는 간단한 테스트를 작성했습니다. 통합 폴더 안에
launch.spec.js
파일을 생성했습니다.![](https://s1.md5.ltd/image/676c3a7dce30bbfba0580de93d10377e.png)
launch.spec.js
파일 내부의 코드입니다.![](https://s1.md5.ltd/image/a92b332ecbe45d003c26082ccb79a5ec.png)
이 테스트를 추가한 후 테스트 환경으로 돌아가서 통과했음을 알 수 있습니다.
![](https://s1.md5.ltd/image/51a371d7ea8ba6c06956d26aa21e6502.png)
이 코드가 혼란스러워 보이는 경우 cypress 웹사이트로 이동하여 세부 정보를 자세히 살펴보는 것이 좋습니다.
추신 저는 이 VScode 확장을 사용하여 typescript 스니펫 반응에 도움을 줄 것을 제안합니다(매우 유용함).
![](https://s1.md5.ltd/image/002a51608dd6dc29593928ccc9cd28a8.png)
내가 사용하고 있는 ESlint 확장 프로그램
![](https://s1.md5.ltd/image/1ace1c6d79df3246926e9d823e63c00d.png)
지금은 여기까지입니다. 계속 지켜봐 주세요!
source code
Reference
이 문제에 관하여(Hire +Plus 자체 문서화: V1 (2)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/ajeasmith/self-documentation-of-hire-plus-v1-2-i9j텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)