>  기사  >  웹 프론트엔드  >  jsDoc npm 모듈 퀘스트

jsDoc npm 모듈 퀘스트

PHPz
PHPz원래의
2024-08-30 19:06:25462검색

TLDR; jsDoc npm module quest

Typescript npm 모듈은 jsDoc에서 제작되었으며, useDuck은 70LOC에서 redux의 황금기를 되살렸습니다. 개발 시 이 모듈의 주요 사용 사례는 복잡한 상태를 형식 안전으로 유지하는 데 도움이 되는 경우입니다.

jsdoc-duck


jsDoc에 대한 TypeScript로 가는 길

const [state, quack] = useDuck(reducer, initialState, actionsMap);
경량 반응 상태 npm 라이브러리인 React-state-factory를 만들었을 때 TypeScript에 대한 내 경험이 좀 더 깊어졌습니다.

jsDoc 제한 테스트


작업에 도움이 되도록 몇 가지 jsDoc 주석을 사용한 후 다음 단계는 좀 더 야심적입니다. 이 모듈을 jsDoc으로 재작업하는 것입니다. 언뜻보기에 이것은 불가능한 임무입니다. 하지만 몇 주 동안 jsDoc을 이해한 후 터널 끝에서 약간의 빛을 보았습니다.

User declared 
state and actions types 
  -> useStateFactory 
  -> [state, dispatchedActoionCollection]
유형 시스템의 공포: 감속기

리듀서 함수를 작성하려고 할 때 특정 지점에서 jsDoc 기능의 엄격한 한계를 발견했습니다. 결과는 Quack이지만 물론 빈 {}가 시작됩니다. 따라서 리듀서 실행이 끝나면 해당 유형이 요청된 모든 키를 포함하는 객체에 대해 궁금해하기 때문에 적절한 돌팔이가 생성됩니다. 그래서 지금까지 이 문제를 해결할 수 없었습니다. 누군가 이 문제를 해결할 수 있는 좋은 아이디어를 제공할 수 있다면 저와 공유하거나 이 모듈 개발에 공동 작업자로 참여해 주시기 바랍니다.

또 다른 함정: TS가 없으면 모듈에 유형이 없습니다.

처음에는 필요한 모든 jsDoc @typedef가 포함된 단일 js 파일을 생성합니다. 조만간 이것이 작동할 것입니다. 그리고 그 순간 그들을 위한 노드 모듈을 만드는 한 단계만 생각하면 됩니다.

그러나 슬픈 사실은 내보낸 유형이 포함된 npm 모듈에서는 jsDoc에서만 작동하지 않으므로 d.ts를 컴파일해야 하므로 마지막 jsDoc 모듈에서는 100% JS라고 말하지 말고 빌드에서는 typescript도 사용합니다.

jsdoc-duck 모듈의 @typedef

dev.to 포럼에서 알 수 있듯이 구문 강조 표시가 jsDoc을 인식하지 못합니다. 다른 잘못된 점은 테스트에서 @typedef가 한 줄만 작성하면 작동하므로 클린 코드에 어긋납니다.

다음 블로그 게시물에서는 이 라이브러리의 구체적인 사용 사례인 정렬: useReducer를 사용한 반응 상태 처리를 단순화하고 유형 안전하게 작성하는 내용을 작성하겠습니다.

위 내용은 jsDoc npm 모듈 퀘스트의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.