Compiler lookup

import 한 줄이 타입 시그니처를 만나는 과정

import { capitalize, isEmpty } from './js/StringUtils' 를 만나면 TypeScript는 구현 파일과 선언 파일을 순서대로 대조합니다.

import

경로 읽기

현재 파일 기준으로 ./js/StringUtils 모듈을 찾습니다.

first

TS 구현 확인

StringUtils.ts가 있으면 그 파일의 타입을 직접 사용합니다.

fallback

d.ts 선언 적용

TS 구현이 없으면 StringUtils.d.tsdeclare module 블록을 읽습니다.

usage

호출 검사

capitalize(num)처럼 선언과 맞지 않는 인자는 오류로 표시됩니다.

선언 파일에는 구현 대신 계약만 둡니다

export function capitalize(str: string): string;
export function isEmpty(str: string | null | undefined): boolean;

JSDoc은 툴팁 설명을 돕고, 타입 검사는 위 시그니처가 담당합니다.