Contents
사용할 일은 거의 없겠지만 JS 라이브러리나 패키지를 어떻게 TS에서 사용하는지 이해하기 좋음
1. 타입 정의를 써야하는 이유
패키지나 라이브러리, 프레임워크는 JS로 만들어져있음
그것을 TS 프로젝트에 사용하기 위해서 타입 정의로 알려줘야 함
- src내에 myPackage.js 만들기
export function init(config) { return true; } export function exit(code) { return code+1; }
- index.ts에서 사용해보기
import {init} from "myPackage";
{ "include": ["src", "src/.myPackage.js"], "compilerOptions": { "outDir": "build", "target": "ES6", "lib": ["ES6", "DOM"], "strict": true, // 매우 보호해줌 } }
2. myPackage.js 만들기
export function init(config) { return true; } export function exit(code) { return code+1; }
- 만든 패키지 사용해보기
import {init} from "myPackage";
3. myPackage.d.ts 파일 만들기
declare module "myPackage";
- myPackage가 있는 것은 알지만 init이 있는지는 모르는 상태
- d.ts의 정의 파일에서 타입만 써주면 됨
interface Config { url: string; } declare module "myPackage"{ function init(config:Config): boolean; }
- 사용 가능함
import {init} from "myPackage"; init({ url: "true" })
- exit도 사용해보기
interface Config { url: string; } declare module "myPackage"{ function init(config:Config): boolean; function exit(code:number): number; }
import {init, exit} from "myPackage"; init({ url: "true" }) exit(1)
Share article