-
d.ts란?
당연히 TS로 생기기전 JS로 적엇을것,\
JS로도 TS에도 사용할 수있는 언어
JS파일을 TS로 호환시켜 사용하는 파일
그렇기에 우리는 TS로 JS와 호환성을 유지해야한다.
즉, 내가 JS에 있는 라이브러리등 도구들은 TS에서 쓸 수 없어가 아니라
JS와 TS가 공존하는것
TS라이브러리의 등장
실제로 TS를 사용하다보면 TYPES@TYPES을 보게되고 설치된 라이브러리를 볼 수 있다
외부 라이브러리에서 타입정보를 조횐다.
즉 PAKAGE.JSON을 사용 할 수 있다.
보통 D.TS로 끝난다.
D.TS란
라이브러리의 TS 타입을 제공해준다.
즉, D.TS가 있기에 JS의 라이브러리를 가져와 쓸 수 있다.
뿐만아나리ㅏ 타입을 추론 할 수 도있다.
타입이 명시가 되지 않았을 때 컴파일러가 알아서 해당 타입에 대해 추론을 하는 것
이런 것을 D.TS로 한다.
그렇기에 TS에서도 JS의 라이브러리를 쓸 수 있구나.
이렇게되면 내가 아끼던 JS을 버려야하나
TS에서도 JS의 모든것을 한줄도 바꾸지 않고 쓸 수 있다.
npm install typescript -g
npm init -y
tsc --init
"allowJs": true // TypeScript 프로젝트에 JavaScript 파일 허용 여부
"checkJs": true // JavaScript 파일 타입 체크 여부js을 ts로 바꾸고
app.ts로 실행한다.
npx ts-node app.ts
테스트하기
/**
* @param {number} a
* @param {number} b
* @returns {number}
*/
export function add(a, b) { // export를 넣지 않으면 import 할 수 없는 것 아시죠?
return a + b;
}npx tsc test.js --declaration --allowJs --emitDeclarationOnly --outDir types
/**
* @param {number} a
* @param {number} b
* @returns {number}
*/
export function add(a: number, b: number): number;import { add } from "./test";
console.log(add(1, 2));npx ts-node foo.ts