
d.ts파일은 type을 정의(declare)하기위해 존재하는 파일이다. 즉, 기존 JavaScript로 만들어진 서브파티 모듈들을 TypeScript환경에서도 사용할 수 있도록 따로 타입만 정리해서 넣어둔 파일이다.
import해서 쓸때파일명.d.ts라고 작성한 파일은 타입 정의만 넣을 수 있다.{}중괄호 붙이기 불가능하다. 피라미터와 return타입만 지정가능d.ts는 ts파일이 아니기 때문에 ambient module이 되지않아 정의해둔 타입은 export해서 써야한다.export type Age = number;
export interface Person {
name: string;
}d.ts파일을 레퍼런스 용으로 쓸때ts파일마다 d.ts파일을 자동생성하면 된다.// tsconfig.json
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"strictNullChecks": true,
// d.ts자동생성옵션 true로바꿔줌
// 저장시 자동으로 ts파일마다 d.ts파일이 옆에생성됨
"declaration": true
}
}index.tslet 이름: string = "규";
let 나이 = 20;이렇게 작성된것을 index.d.tsdeclare let 이름: string;
declare let 나이: number;이렇게 생성된다. export없이 d.ts파일을 글로벌 모듈로 만들때types/common폴더두개만든다.tsconfig.json파일에 "typeRoots": ["./types"]옵션추가ts파일에 작성할 때 타입이 없으면 자동으로 타입을 찾아서 적용해준다.d.ts파일을 누군가 만들어 놓아서 그것을 다운받아 사용하면 된다. node_modules/@types경로로 타입이 설치되고 ts컴파일러는 자동으로 여기서 타입을 가져오게 된다."typeRoots"옵션이 있을 경우 node_modules/@types 폴더를 추가해야한다.jQuery의 경우npm install --save @types/jquery 이렇게 강제로 설치하면 jQuery문법 사용시 타입정의 안해도 된다.