Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: config react docgen typescript #85

Merged
merged 2 commits into from
May 9, 2024
Merged

Conversation

Hanna922
Copy link
Member

@Hanna922 Hanna922 commented May 9, 2024

1️⃣ 어떤 작업을 했나요? (Summary)

image

해결 완 😙

2️⃣ 알아두시면 좋아요!

#78 PR comment에 union type과 관련해 분석한 내용을 적어두었습니다.
결론은 스토리북에서 취급하는 버그가 아니었고, react-docgen 을 추가로 활용합니다.
reactDocgen의 기본 설정은 react-docgen이지만, TypeScript 파일을 적절히 처리하기 위해 react-docgen-typescript를 설정합니다.

forwardRef 활용해서 수정 했었던 속성 누락 문제까지 전부 해결돼서 #78은 닫았습니다.

undefined type 표시

특정 prop의 타입을 변형하려면 react-docgen-typescript의 출력을 후처리해야 하고, 번들러 로더 설정에서 후처리 수행 스크립트 or 플러그인을 작성해야 합니다.
다만, 플러그인 작성시 모든 TS 파일의 소스 코드에서 undefined를 제거하게 됩니다.
=> 결론: 타입 정보는 그대로 보존합니다.

image

4️⃣ 체크리스트 (Checklist)

  • main 브랜치의 최신 코드를 pull 받았나요?

@Hanna922 Hanna922 self-assigned this May 9, 2024
@Hanna922 Hanna922 requested a review from nijuy as a code owner May 9, 2024 09:35
return true;
},
},
check: false,
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

더 빠른 빌드를 위해 타입 체크 비활성화

shouldExtractLiteralValuesFromEnum: true,
propFilter: (prop) => {
if (prop.parent) {
return !prop.parent.fileName.includes('node_modules');
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

{component}.type.ts 파일에서만 다루는 type을 취급하기 위함

Copy link
Collaborator

@nijuy nijuy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

확인이 늦었습니다 죄송송죄요 🥺

typescript: {
reactDocgen: 'react-docgen-typescript',
reactDocgenTypescriptOptions: {
shouldExtractLiteralValuesFromEnum: true,
Copy link
Collaborator

@nijuy nijuy May 9, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
shouldExtractLiteralValuesFromEnum: true,
shouldExtractLiteralValuesFromEnum: true,
shouldRemoveUndefinedFromOptional: true,

optional field의 경우 | undefined가 붙어있어서 제어할 때 번거로운 거 같아요.
특히 boolean 타입의 경우가 그렇다고 느꼈습니다!!

react-docgen-typescript의 이슈 코멘트 보고 스크립트 작성해야 한다는 말이 이건가? 했는데
찾아보니 해당 이슈 이후로 optional field에 한해서 | undefined를 없애주는 옵션이 만들어졌네요.
설정해두는 게 좋을 거 같아 코드 제안 남겨뒀습니다!!

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

설정 전 설정 후
image image

@nijuy
Copy link
Collaborator

nijuy commented May 9, 2024

제가 브랜치 바꾸는 걸 실수해서 커밋 하나 revert 해놨습니다 죄송해용

@Hanna922 Hanna922 merged commit 6bd4f4a into develop May 9, 2024
@Hanna922 Hanna922 deleted the feat/#85-react-docgen branch May 9, 2024 15:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

bug: Controls props 설명 사라짐
2 participants