추후 포스팅할 fabric js를 사용하여 이미지 에디터를 제작하던중 타입스크립트 에러가 출력되었다
🤔 뭔가 이상하니 document를 살펴보자
fabric js의 document에서는 다음과 같이 사용할 수 있다고 나와있다
타입이 지정되어 있지 않은지 확인하기 위해 @types/fabric을 살펴보니 interface IAllFilters 의 하위의 각각 Blur와 HueRotation이 별도로 선언되어있지 않았다
타입이 누락된 이유는 모르겠지만 자료형이 정의되고 패키지가 업데이트된 것이 반영되지 않아서 빠졌을 수도 있고, 단순 누락되었을 수도 있다
타입스크립트를 사용할때 패키지 내부에 포함되어있지 않고 @types로 추가되는 ts디펜던시는 많은 개발자가 기여하여 만들어진 경우가 대부분이다
그에 대한 git Repository는 다음과 같다
https://github.com/DefinitelyTyped/DefinitelyTyped
GitHub - DefinitelyTyped/DefinitelyTyped: The repository for high quality TypeScript type definitions.
The repository for high quality TypeScript type definitions. - GitHub - DefinitelyTyped/DefinitelyTyped: The repository for high quality TypeScript type definitions.
github.com
서론은 여기까지 하고 DefinitelyTyped에 기여해보도록 하자
우선은 리포지토리를 fork 한다
https://github.com/DefinitelyTyped/DefinitelyTyped
GitHub - DefinitelyTyped/DefinitelyTyped: The repository for high quality TypeScript type definitions.
The repository for high quality TypeScript type definitions. - GitHub - DefinitelyTyped/DefinitelyTyped: The repository for high quality TypeScript type definitions.
github.com
포스팅 작성 기준으로는 상단에 fork 버튼을 누르면 리포지토리를 fork할 수 있다
해당 버튼을 누르면
아래와 같이 나오며 Create a new fork를 하면 포크를 하여 리포지토리를 생성할 수 있다
생성시 name과 description은 기존 리포지토리와 동일하게 자동완성되고 별도로 원하는 브랜치가 없다면 copy master branch only로 생성해준다
그러면 위와같이 나의 Repositories 하위에 포크된 리포지토리가 생성된다
로컬로 클론을 받도록 하자
git desktop 기준으로 본인은 위와같이 세팅되었다(GitHub Desktop 기준)
브랜치도 생성해주었다
브랜치 생성시 다음과 같이 나올 수 있는데
브랜치 base를 기여용인지 개인용인지 선택하는 것 이다
기여를 하기로 했으니 upstream/master base로 생성하자
클론까지 했다면 이제 타입을 수정하자
이미 있는 기능이며 타입 에러를 무시하고 동작하면 별도의 문제는 발생하지 않으므로 내 프로젝트에 타입만 추가하여 바로 작업을 진행하는 방향으로 결정하였다
우선 심플하게 clone 받은 포크 리포지토리에서 내가 수정하고싶은 디렉토리를 복사해준다
그리고 프로젝트 root 하위에 디렉토리를 생성해준 뒤 그냥 붙여넣어준다 (디렉토리명은 아무거나 해도된다 여기서는 types로 생성하였다)
그리고 package.json에 들어가서 디펜던시를 수정해준다
(여기서는 @types/fabric 이다)
그리고 패키지를 다시 인스톨해주면 해당 디펜던시가 types 디렉토리를 바라보게 될 것이다
이제 타입을 수정해준다
내 수정내용은 다음과같다
https://github.com/DefinitelyTyped/DefinitelyTyped/pull/64471/files
동작에 문제가 없는 것을 확인했다면 해당 디렉토리를 다시 clone 받은 DefinitelyTyped 리포지토리에 반영해준다
동작에 문제가 없는지 확인하였으면 풀 리퀘스트를 생성하자
그러면 fork된 리포지토리로 이동하게 되는데
브랜치를 잘 선택하고 pull request를 생성하자
그러면 다음과 같은 화면이 나오는데 template을 작성해달라는 요청과 첨삭하는 내용이 포함되어있다
Pull request 생성하기 전에 내용들을 확인하고 진행하면된다
상단의 기본 5가지 항목은 기본적인 내용이고
Select one of these and delete the others: 이후의 내용은 새로 생성하거나 수정하는 경우, 삭제하는 경우의 해당하는 것이니 그에 맞게 작성하면된다.
생성과 동시에 봇이 자동으로 항목을 체크하고
소유자들에게 병합투표를 보내게된다
그에 대한 흐름을 보고싶다면 다음 링크를 참고하면된다
https://github.com/DefinitelyTyped/DefinitelyTyped/pull/64471
Add: Add fabric js definition by nkdevil · Pull Request #64471 · DefinitelyTyped/DefinitelyTyped
Please fill in this template. Use a meaningful title for the pull request. Include the name of the package modified. Test the change in your own code. (Compile and run.) Add or edit tests to re...
github.com
최종적으로 완료되면 프로젝트에 기여가 되었다!
소유자를 적었다면 해당 프로젝트의 소유자로 등록까지 되었다!🎉
댓글 영역