타입스크립트의 가장 큰 장점 중 하나 입니다. 위 링크를 통해 방문해보시면, 커뮤니티는 효과적으로 자바스크립트 프로젝트의 타입 선언과 관련하여 정의되어가고 문서화 되어있습니다.
DefinitelyTyped에 정의된 패키지의 타입 선언을 통해 해당 패키지가 기본적으로 제공하는 type을 제공 받을 수 있습니다.
yarn add --dev @types/hex-to-binary
DefinitelyTyped에 추가된 타입 선언 파일의 경우 npm에 배포 되며 이는 풀 리퀘스트를 통해 직접 추가할 수 있습니다.
$ExpectType
사용하면 된다.@ts-expect-error
사용하면 된다.ex) hex-to-binary-tests.ts
import hexToRgba = require("hex-to-binary");
// $ExpectType string
const binary = hexToRgba("1b2b34");
// @ts-expect-error
const binary = hexToRgba();
이 파일들은, npm ≥ 5.2.0 에서는 npx dts-gen --dt --name <my-package> --template module 명령으로,
그 이하 경우에는 npm install -g dts-gen 와 dts-gen --dt --name <my-package> --template module 명령으로 만들 수 있습니다.
dts-gen 의 모든 옵션(Option)을 보고싶으시면 dts-gen 저장소를 확인해주세요.
npx dts-gen --dt --name <my-package> --template module
/types/<my-package>
로 디렉터리가 생성 되었는지 확인 합니다.1. mkdir <my-package>
2. npx dts-gen --dt --name <my-package> --template module
- DT에는 특정 모듈 유형의 품질을 유지하고자 '정의 소유자' 라는 개념이 있습니다.
- 이 목록에 자신을 추가할 시 누군가 패키지에 대한 풀 리퀘스트,
- 이슈를 만들 때 GitHub 사용자 이름을 통해 알림을 받게 됩니다.
- DT 관리자는 안정적인 시스템을 위해 기재한 사람을 신뢰하니, 가볍게 추가하지 마세요
index.d.ts
// Type definitions for hex-to-binary 1.0
// Project: https://github.com/AVVS/hex-to-binary
// Definitions by: GeunheeJung <https://github.com/geunheejung>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
export = hexToBinary;
declare function hexToBinary(s: string): string;
dts-gen
라이브러리를 통해 생성할 경우 해당 패키지의 대한 주석은 자동으로 매칭되어 기재 됩니다.Definitions by:
부분만 추가로 기재해주시면 됩니다.<my-package>-tests.ts
에 작성된 테스트가 진행되며,
그 외 문제가 있는 부분이 있을 경우 bot이 알려줍니다.
위 과정을 통해 풀 리퀘스트까지 진행한 뒤, 병합 되었다면 24시간 이내에 자동으로 @types/<my-package>
이름으로 npm에 배포 됩니다!