Type declaration file
μλ°μ€ν¬λ¦½νΈ λ΄μ₯ κ°μ²΄, λλ μΈλΆ λΌμ΄λΈλ¬λ¦¬, API λ±μ μ€λͺ νλ νμΌλ‘, .d.ts μ νμ₯μλ₯Ό κ°μ§λ€.
μ€μ ꡬνμ ν¬ν¨νμ§ μμΌλ©°. νΉμ νμ μ΄ μ‘΄μ¬νλ€λ κ²μ μ μΈνλ€.
console.log()μμ consoleμ λκ³ β ν€λ₯Ό λλ₯Έμ±λ‘ ν΄λ¦ν΄λ³΄λ©΄ μ°μΈ‘μ²λΌ lib.dom.d.ts νμΌμ νμΈν μ μλ€.
νμΌμ 보면 μκ² μ§λ§ .ts νμΌμλ μ€νμ΄ κ°λ₯ν ꡬν μ½λλ₯Ό μμ±νλ€λ©΄,
.d.ts νμΌμλ νμ μ λ³΄λ§ ν¬ν¨νκ³ μλ€. .d.ts νμΌμ νμ μ 보λ₯Ό μ κ³΅ν΄ νμ κ²μ¬λ₯Ό μ§ννκ³ js νΈνμ±μ μ 곡νλ μν μ νλ€.
μμ
μΈλΆ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ€λͺ νλ μν λ νλ€κ³ νμΌλ―λ‘ μμμ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ€μΉνλ€.
npm install lodash @types/lodash
declaration-files.ts
import _ from 'lodash';
let max = _.max([3, 2, 6, 4, 7, 9, 1]);
console.log(max);
let shuffledArray = _.shuffle([212, 2, 1, 6, 4, 3]);
console.log(shuffledArray);
* μ΄λλ‘ μ»΄νμΌνκ³ μ€ννλ©΄ μλ¬κ° λ μλ μλ€.
κ·Έλ΄ λλ tsconfig.jsonμμ esModuleInterop μ΄ trueλ‘ λμ΄μλμ§ νμΈν΄λ΄μΌνλ€. (falseλ©΄ trueλ‘ λ³κ²½νκΈ°!)
{
"compilerOptions": {
"target": "es6", // μΆλ ₯ JavaScriptμ λ¬Έλ² λ²μ (μ: async/await κ°λ₯)
"module": "commonjs", // Node.js νκ²½μμ μ¬μ©νλ λͺ¨λ μμ€ν
"esModuleInterop": true, // CommonJS λͺ¨λμ ES6 μ€νμΌ(import ...)λ‘ μ¬μ©ν μ μκ² ν¨
"forceConsistentCasingInFileNames": true, // λμλ¬Έμ μΌκ΄μ± μμΌλ©΄ μ€λ₯ (ex: importμ μ€μ νμΌλͺ
μ΄ λ€λ₯Ό λ)
"strict": true, // μ격ν νμ
κ²μ¬ μ 체λ₯Ό μΌ¬ (μλ λͺ¨λ strict κ³μ΄ μ΅μ
ν¬ν¨)
"skipLibCheck": true, // node_modules μμ .d.ts νμΌ νμ
κ²μ¬λ μλ΅ (λΉλ μλ ν₯μ)
}
μ¬κΈ°μ μ§μ μ μΌλ‘ νμ μ μ μν΄μ€ μ μλ€.
types.d.ts
declare module 'lodash' {
function max(...args: any[]): number;
function shuffle(...args: any[]): any[];
}
νμ§λ§ μ΄ λ°©λ²μ μ¬μ©νλ λ©μλκ° λ§μμ§μλ‘ κ°μ΄ μΆκ°ν΄μΌν΄μ λ²κ±°λ‘μ΄ μμ μ΄ λ μ μκ³ , μ§μ μ μνλ κ²μ΄λΌ μ ννμ§ μμ μ μλ€.
λλ²μ§Έ λ°©λ²μ νμ μ μλ₯Ό λ°λ‘ μ€μΉνλ©΄ λλλ°, μμμ ν¨κ» λ€μ΄λ°μλ @types/loadashλ lodashμμ μ 곡ν΄μ£Όλ νμ μ μΈ νμΌμ΄λΌ μλ₯Ό μ¬μ©νλ©΄ λλ€.
μ΄μ types.d.tsκ° μμ΄λ μλμ κ°μ΄ λͺ νν νμ μ μλ₯Ό νμΈν μ μλ€.
'typescript' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
TypeScript / Webpack (0) | 2025.06.10 |
---|---|
TypeScript / μ λ€λ¦ (2) | 2025.06.05 |
TypeScript / ν΄λμ€ (0) | 2025.06.05 |
TypeScript / νμ μΆλ‘ , νμ λ¨μΈ (0) | 2025.06.05 |
TypeScript / νμ (2) (0) | 2025.06.04 |