Today I Learned/TIL 07
2023 - 07 - 20 타입스크립트 .d.ts 파일, types, JSDoc
sangwoo_rhie
2023. 7. 26. 10:27
오늘 배운것. 타입스크립트 TypeScript => .d.ts
.d.ts 파일로 TypeScript 컴파일러는 다음과같은 사항을 알 수 있다.
1. 외부 라이브러리 함수 타입 정보
2. 외부 라이브러리 클래스 타입 정보
3. 외부 라이브러리 객체 타입 정보
4. 외부 라이브러리의 타입 추론 ( 타입이 명시되지 않았을 때, 컴파일러가 알아서 해당 타입에 대한 추론을 함)
JavaScript 라이브러리를 TypeScript에서 사용하는법.
1. Node.js 프로젝트 생성
npm init -y
2. tsconfig.json을 생성하여 TypeScript 프로젝트로 변환
tsc --init
3. tsconfig.json을 열어서 아래의 옵션을 주석 해제하여 true로 설정
"allowJs": true // TypeScript 프로젝트에 JavaScript 파일 허용 여부
"checkJs": true // JavaScript 파일 타입 체크 여부
4. TypeScript에서 사용하고 싶은 커스텀 JavaScript 라이브러리(test.js)를 만듦
아래의 주석문은 JSDoc라고 하는데, 이는 API의 시그니처 (인자, 리턴타입)을 설명하는 HTML 문서생성기이다.
/**
* @param {number} a
* @param {number} b
* @returns {number}
*/
export function add(a, b) { // export를 넣지 않으면 import 할 수 없는 것 아시죠?
return a + b;
}
5. JSDoc으로 타입 힌트가 제공된 test.js의 .d.ts 파일 생성
npx tsc test.js --declaration --allowJs --emitDeclarationOnly --outDir types
6. types/test.d.ts 파일을 확인하면 다음과 같이 생성이 되어 있음.
/**
* @param {number} a
* @param {number} b
* @returns {number}
*/
export function add(a: number, b: number): number;
7. test.js 파일을 참조할 foo.ts 파일을 새로 만듦
import { add } from "./test";
console.log(add(1, 2));
8. foo.ts 파일 실행. 실행시 3이라는 숫자가 뜨며, 정상적으로 실행됨
npx ts-node foo.ts