μ΄ μ¬μΈ΅μ μΈ tsconfig.json κ°μ΄λλ‘ TypeScript μ€μ μ λ§μ€ν°νμΈμ. ν¨μ¨μ μΈ κ°λ°μ μν νμ μ»΄νμΌλ¬ μ΅μ , νλ‘μ νΈ μ€μ λ° κ³ κΈ κ΅¬μ±μ λ°°μ°μΈμ.
TypeScript μ€μ : μ’ ν© tsconfig.json κ°μ΄λ
JavaScriptμ μμ μ§ν©μΈ TypeScriptλ λμ μΈ μΉ κ°λ° μΈκ³μ μ μ νμ΄νμ λμ
ν©λλ€. μ ꡬμ±λ tsconfig.json νμΌμ TypeScriptμ λͺ¨λ κΈ°λ₯μ νμ©νλ λ° λ§€μ° μ€μν©λλ€. μ΄ κ°μ΄λλ tsconfig.jsonμ λν ν¬κ΄μ μΈ κ°μλ₯Ό μ 곡νλ©°, νμ μ»΄νμΌλ¬ μ΅μ
, νλ‘μ νΈ μ€μ λ° κ³ κΈ κ΅¬μ±μ λ€λ£Ήλλ€.
tsconfig.jsonμ΄λ 무μμΈκ°μ?
tsconfig.json νμΌμ TypeScript νλ‘μ νΈμ μ»΄νμΌλ¬ μ΅μ
μ μ§μ νλ μ€μ νμΌμ
λλ€. μ΄ νμΌμ TypeScript μ»΄νμΌλ¬μκ² TypeScript μ½λλ₯Ό JavaScriptλ‘ λ³ννλ λ°©λ²μ μλ €μ€λλ€. μ΄ νμΌμ νλ‘μ νΈμ ꡬ쑰λ₯Ό μ μνκ³ , μ»΄νμΌ κ·μΉμ μ€μ νλ©°, νμ΄ λ¨μΌ μ¬λ¬΄μ€μ μλ μ¬λ¬ λλ₯μ λΆμ°λμ΄ μλ κ΄κ³μμ΄ κ°λ° ν μ 체μ μΌκ΄μ±μ 보μ₯νλ λ° νμμ μ
λλ€.
tsconfig.json νμΌ μμ±νκΈ°
tsconfig.json νμΌμ μμ±νλ €λ©΄ ν°λ―Έλμμ νλ‘μ νΈμ λ£¨νΈ λλ ν°λ¦¬λ‘ μ΄λνμ¬ λ€μ λͺ
λ Ήμ μ€ννμΈμ:
tsc --init
μ΄ λͺ
λ Ήμ μΌλ°μ μΌλ‘ μ¬μ©λλ μ»΄νμΌλ¬ μ΅μ
μ΄ ν¬ν¨λ κΈ°λ³Έ tsconfig.json νμΌμ μμ±ν©λλ€. κ·Έλ° λ€μ νλ‘μ νΈμ νΉμ μꡬ μ¬νμ λ§κ² νμΌμ μ¬μ©μ μ μν μ μμ΅λλ€. μΌλ°μ μΈ tsconfig.jsonμλ compilerOptions, include, excludeμ κ°μ μ΅μ
μ΄ ν¬ν¨λ©λλ€.
νμ μ»΄νμΌλ¬ μ΅μ
compilerOptions μΉμ
μ tsconfig.json νμΌμ ν΅μ¬μ
λλ€. μ¬κΈ°μλ TypeScript μ»΄νμΌλ¬μ λμμ μ μ΄νλ λ€μν μ΅μ
μ΄ ν¬ν¨λμ΄ μμ΅λλ€. λ€μμ κ°μ₯ μ€μν μ»΄νμΌλ¬ μ΅μ
μ€ μΌλΆμ
λλ€:
target
target μ΅μ
μ μμ±λ JavaScript μ½λμ ECMAScript λμ λ²μ μ μ§μ ν©λλ€. μΌλ°μ μΈ κ°μΌλ‘λ ES5, ES6 (ES2015), ES2016, ES2017, ES2018, ES2019, ES2020, ES2021, ES2022, ESNextκ° μμ΅λλ€. μ¬λ°λ₯Έ λμμ μ ννλ κ²μ λΈλΌμ°μ λ Node.js λ²μ κ³Ό κ°μ μλλ λ°νμ νκ²½κ³Όμ νΈνμ±μ 보μ₯νλ λ° μ€μν©λλ€.
μμ:
{
"compilerOptions": {
"target": "ES2020"
}
}
module
module μ΅μ
μ λͺ¨λ μ½λ μμ± μ€νμΌμ μ§μ ν©λλ€. μΌλ°μ μΈ κ°μΌλ‘λ CommonJS, AMD, System, UMD, ES6 (ES2015), ES2020, ESNextκ° μμ΅λλ€. λͺ¨λ μμ€ν
μ μ νμ λμ νκ²½κ³Ό μ¬μ©λλ λͺ¨λ λ²λ€λ¬(μ: Webpack, Rollup, Parcel)μ λ°λΌ λ¬λΌμ§λλ€. Node.jsμ κ²½μ° CommonJSκ° μμ£Ό μ¬μ©λλ λ°λ©΄, μ΅μ μΉ μ ν리μΌμ΄μ
μ κ²½μ° λͺ¨λ λ²λ€λ¬μ ν¨κ» ES6 λλ ESNextκ° μ νΈλ©λλ€. ESNextλ₯Ό μ¬μ©νλ©΄ κ°λ°μλ μ΅μ κΈ°λ₯κ³Ό μ΅μ νλ₯Ό νμ©νλ©΄μ μ΅μ’
λͺ¨λ νμμ λ²λ€λ¬κ° μ²λ¦¬νλλ‘ ν μ μμ΅λλ€.
μμ:
{
"compilerOptions": {
"module": "ESNext"
}
}
lib
lib μ΅μ
μ μ»΄νμΌμ ν¬ν¨λ λΌμ΄λΈλ¬λ¦¬ νμΌ λͺ©λ‘μ μ§μ ν©λλ€. μ΄ λΌμ΄λΈλ¬λ¦¬ νμΌλ€μ λ΄μ₯ JavaScript API λ° λΈλΌμ°μ APIμ λν νμ
μ μλ₯Ό μ 곡ν©λλ€. μΌλ°μ μΈ κ°μΌλ‘λ ES5, ES6, ES2015, ES2016, ES2017, ES2018, ES2019, ES2020, ES2021, ES2022, ESNext, DOM, WebWorker, ScriptHost, ES2015.Core, ES2015.Collection, ES2015.Iterable, ES2015.Promise, ES2015.Proxy, ES2015.Reflect, ES2015.Generator, ES2015.Symbol, ES2015.Symbol.WellKnown, ES2016.Array.Include, ES2017.object, ES2017.Intl, ES2017.SharedMemory, ES2017.String, ES2017.TypedArrays, ES2018.Intl, ES2018.Promise, ES2018.RegExp, ES2019.Array, ES2019.Object, ES2019.String, ES2019.Symbol, ES2020.BigInt, ES2020.Promise, ES2020.String, ES2020.Symbol.WellKnown, ES2021.Promise, ES2021.String, ES2021.WeakRef, ES2022.Error, ES2022.Object, ES2022.String λ±μ΄ μμ΅λλ€. μ μ ν λΌμ΄λΈλ¬λ¦¬λ₯Ό μ ννλ©΄ TypeScript μ»΄νμΌλ¬κ° λμ νκ²½μ νμν νμ
μ 보λ₯Ό κ°λλ‘ λ³΄μ₯ν©λλ€. DOM λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©νλ©΄ νλ‘μ νΈκ° νμ
μ€λ₯ μμ΄ λΈλΌμ°μ νΉμ APIλ₯Ό μ¬μ©νλ μ½λλ₯Ό μ»΄νμΌν μ μμ΅λλ€.
μμ:
{
"compilerOptions": {
"lib": ["ES2020", "DOM"]
}
}
allowJs
allowJs μ΅μ
μ TypeScript μ»΄νμΌλ¬κ° TypeScript νμΌκ³Ό ν¨κ» JavaScript νμΌμ μ»΄νμΌνλλ‘ νμ©ν©λλ€. μ΄λ κΈ°μ‘΄ JavaScript νλ‘μ νΈλ₯Ό μ μ§μ μΌλ‘ TypeScriptλ‘ λ§μ΄κ·Έλ μ΄μ
ν λ μ μ©ν©λλ€. μ΄ κ°μ trueλ‘ μ€μ νλ©΄ μ»΄νμΌλ¬κ° .js νμΌμ μ²λ¦¬ν μ μκ² λμ΄ νλ‘μ νΈ λ΄μμ μ μ§μ μΈ TypeScript μ±νμ΄ κ°λ₯ν΄μ§λλ€.
μμ:
{
"compilerOptions": {
"allowJs": true
}
}
jsx
jsx μ΅μ
μ JSX ꡬ문μ μ²λ¦¬νλ λ°©λ²μ μ§μ ν©λλ€. μΌλ°μ μΈ κ°μΌλ‘λ preserve, react, react-native, react-jsxκ° μμ΅λλ€. preserveλ μΆλ ₯μμ JSX ꡬ문μ μ μ§νλ λ°λ©΄, reactλ JSXλ₯Ό React.createElement νΈμΆλ‘ λ³νν©λλ€. react-jsxλ React 17μ λμ
λ μλ‘μ΄ JSX λ³νμ μ¬μ©νλ©°, μ΄λ Reactλ₯Ό κ°μ Έμ¬ νμκ° μμ΅λλ€. μ¬λ°λ₯Έ JSX μ΅μ
μ μ ννλ κ²μ React λλ λ€λ₯Έ JSX κΈ°λ° λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©νλ νλ‘μ νΈμ λ§€μ° μ€μν©λλ€.
μμ:
{
"compilerOptions": {
"jsx": "react-jsx"
}
}
declaration
declaration μ΅μ
μ κ° TypeScript νμΌμ ν΄λΉνλ .d.ts μ μΈ νμΌμ μμ±ν©λλ€. μ μΈ νμΌμλ νμ
μ λ³΄κ° ν¬ν¨λμ΄ μμΌλ©°, μ»΄νμΌλ μ½λλ₯Ό μ¬μ©νλ λ€λ₯Έ TypeScript νλ‘μ νΈμμ μ¬μ©λ©λλ€. μ μΈ νμΌμ μμ±νλ κ²μ μ¬μ¬μ© κ°λ₯ν λΌμ΄λΈλ¬λ¦¬ λ° λͺ¨λμ λ§λλ λ° νμμ μ
λλ€. μ΄ νμΌλ€μ ν΅ν΄ λ€λ₯Έ TypeScript νλ‘μ νΈλ μλ³Έ μμ€ μ½λλ₯Ό μ»΄νμΌν νμ μμ΄ λΌμ΄λΈλ¬λ¦¬κ° λ
ΈμΆνλ νμ
κ³Ό μΈν°νμ΄μ€λ₯Ό μ΄ν΄ν μ μμ΅λλ€.
μμ:
{
"compilerOptions": {
"declaration": true
}
}
sourceMap
sourceMap μ΅μ
μ μμ±λ JavaScript μ½λλ₯Ό μλ³Έ TypeScript μ½λλ‘ λ€μ λ§€ννλ μμ€ λ§΅ νμΌμ μμ±ν©λλ€. μμ€ λ§΅μ λΈλΌμ°μ λ° κΈ°ν νκ²½μμ TypeScript μ½λλ₯Ό λλ²κΉ
νλ λ° νμμ μ
λλ€. JavaScript μ½λμμ μ€λ₯κ° λ°μνλ©΄ μμ€ λ§΅μ ν΅ν΄ κ°λ°μλ λλ²κ±°μμ ν΄λΉ TypeScript μ½λλ₯Ό λ³Ό μ μμ΄ λ¬Έμ λ₯Ό λ μ½κ² μλ³νκ³ μμ ν μ μμ΅λλ€.
μμ:
{
"compilerOptions": {
"sourceMap": true
}
}
outDir
outDir μ΅μ
μ μμ±λ JavaScript νμΌμ μΆλ ₯ λλ ν°λ¦¬λ₯Ό μ§μ ν©λλ€. μ΄ μ΅μ
μ μμ€ μ½λμ μ»΄νμΌλ μ½λλ₯Ό λΆλ¦¬νμ¬ νλ‘μ νΈμ λΉλ μΆλ ₯μ ꡬμ±νλ λ° λμμ΄ λ©λλ€. outDirμ μ¬μ©νλ©΄ λΉλ νλ‘μΈμ€λ₯Ό λ μ½κ² κ΄λ¦¬νκ³ μ ν리μΌμ΄μ
μ λ°°ν¬ν μ μμ΅λλ€.
μμ:
{
"compilerOptions": {
"outDir": "dist"
}
}
rootDir
rootDir μ΅μ
μ TypeScript νλ‘μ νΈμ λ£¨νΈ λλ ν°λ¦¬λ₯Ό μ§μ ν©λλ€. μ»΄νμΌλ¬λ μ΄ λλ ν°λ¦¬λ₯Ό λͺ¨λ μ΄λ¦μ νμΈνλ κΈ°μ€μΌλ‘ μ¬μ©ν©λλ€. μ΄ μ΅μ
μ 볡μ‘ν λλ ν°λ¦¬ ꡬ쑰λ₯Ό κ°μ§ νλ‘μ νΈμ νΉν μ€μν©λλ€. rootDirμ μ¬λ°λ₯΄κ² μ€μ νλ©΄ μ»΄νμΌλ¬κ° νμν λͺ¨λ λͺ¨λκ³Ό μ’
μμ±μ μ°Ύμ μ μμ΅λλ€.
μμ:
{
"compilerOptions": {
"rootDir": "src"
}
}
strict
strict μ΅μ
μ λͺ¨λ μ격ν νμ
κ²μ¬ μ΅μ
μ νμ±νν©λλ€. μ΄λ κ°λ° κ³Όμ μ΄κΈ°μ μ μ¬μ μΈ μ€λ₯λ₯Ό ν¬μ°©νλ λ° λμμ΄ λλ―λ‘ μλ‘μ΄ TypeScript νλ‘μ νΈμ κ°λ ₯ν κΆμ₯λ©λλ€. μ격 λͺ¨λλ₯Ό νμ±ννλ©΄ λ μ격ν νμ
κ²μ¬ κ·μΉμ΄ μ μ©λμ΄ λ κ²¬κ³ νκ³ μ μ§λ³΄μνκΈ° μ¬μ΄ μ½λλ₯Ό μμ±ν μ μμ΅λλ€. λͺ¨λ μλ‘μ΄ TypeScript νλ‘μ νΈμμ μ격 λͺ¨λλ₯Ό νμ±ννλ κ²μ΄ λͺ¨λ² μ¬λ‘μ
λλ€.
μμ:
{
"compilerOptions": {
"strict": true
}
}
esModuleInterop
esModuleInterop μ΅μ
μ CommonJSμ ES λͺ¨λ κ°μ μνΈ μ΄μ©μ±μ νμ±νν©λλ€. μ΄λ λ κ°μ§ μ νμ λͺ¨λμ λͺ¨λ μ¬μ©νλ νλ‘μ νΈμ μ€μν©λλ€. esModuleInteropμ΄ νμ±νλλ©΄ TypeScriptλ CommonJSμ ES λͺ¨λ κ°μ μ°¨μ΄μ μ μλμΌλ‘ μ²λ¦¬νμ¬ λ μμ€ν
κ°μ λͺ¨λμ λ μ½κ² κ°μ Έμ€κ³ λ΄λ³΄λΌ μ μλλ‘ ν©λλ€. μ΄ μ΅μ
μ λ€λ₯Έ λͺ¨λ μμ€ν
μ μ¬μ©ν μ μλ νμ¬ λΌμ΄λΈλ¬λ¦¬μ μμ
ν λ νΉν μ μ©ν©λλ€.
μμ:
{
"compilerOptions": {
"esModuleInterop": true
}
}
moduleResolution
moduleResolution μ΅μ
μ TypeScriptκ° λͺ¨λ κ°μ Έμ€κΈ°λ₯Ό νμΈνλ λ°©λ²μ μ§μ ν©λλ€. μΌλ°μ μΈ κ°μΌλ‘λ Nodeμ Classicμ΄ μμ΅λλ€. Node λͺ¨λ νμΈ μ λ΅μ΄ κΈ°λ³Έκ°μ΄λ©° Node.js λͺ¨λ νμΈ μκ³ λ¦¬μ¦μ κΈ°λ°μΌλ‘ ν©λλ€. Classic λͺ¨λ νμΈ μ λ΅μ λ μ€λλμκ³ λ μΌλ°μ μΌλ‘ μ¬μ©λ©λλ€. Node λͺ¨λ νμΈ μ λ΅μ μ¬μ©νλ©΄ TypeScriptκ° Node.js νκ²½μμ λͺ¨λ κ°μ Έμ€κΈ°λ₯Ό μ¬λ°λ₯΄κ² νμΈν μ μμ΅λλ€.
μμ:
{
"compilerOptions": {
"moduleResolution": "Node"
}
}
baseUrl and paths
baseUrlκ³Ό paths μ΅μ
μ μλμ μ΄μ§ μμ λͺ¨λ κ°μ Έμ€κΈ°μ λν λͺ¨λ νμΈμ ꡬμ±νλ λ° μ¬μ©λ©λλ€. baseUrl μ΅μ
μ μλμ μ΄μ§ μμ λͺ¨λ μ΄λ¦μ νμΈνκΈ° μν κΈ°λ³Έ λλ ν°λ¦¬λ₯Ό μ§μ ν©λλ€. paths μ΅μ
μ μ¬μ©νλ©΄ λͺ¨λ μ΄λ¦μ νμΌ μμ€ν
μ νΉμ μμΉμ λ§€νν μ μμ΅λλ€. μ΄λ¬ν μ΅μ
μ 볡μ‘ν λλ ν°λ¦¬ ꡬ쑰λ₯Ό κ°μ§ νλ‘μ νΈμ λͺ¨λ κ°μ Έμ€κΈ°λ₯Ό λ¨μννλ λ° νΉν μ μ©ν©λλ€. baseUrlκ³Ό pathsλ₯Ό μ¬μ©νλ©΄ μ½λλ₯Ό λ μ½κΈ° μ½κ³ μ μ§λ³΄μνκΈ° μ½κ² λ§λ€ μ μμ΅λλ€.
μμ:
{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"@components/*": ["src/components/*"],
"@utils/*": ["src/utils/*"]
}
}
}
Include λ° Exclude μ΅μ
includeμ exclude μ΅μ
μ μ»΄νμΌμ ν¬ν¨ν νμΌκ³Ό μ μΈν νμΌμ μ§μ ν©λλ€. μ΄λ¬ν μ΅μ
μ νμΌ μ΄λ¦μ μΌμΉμν€κΈ° μν΄ glob ν¨ν΄μ μ¬μ©ν©λλ€. includeμ excludeλ₯Ό μ¬μ©νλ©΄ TypeScript μ»΄νμΌλ¬κ° μ²λ¦¬ν νμΌμ μ μ΄νμ¬ λΉλ μ±λ₯μ κ°μ νκ³ μ€λ₯λ₯Ό μ€μΌ μ μμ΅λλ€. μ»΄νμΌμ ν¬ν¨ν νμΌμ λͺ
μμ μΌλ‘ μ§μ νλ κ²μ΄ λͺ¨λ² μ¬λ‘μ
λλ€.
μμ:
{
"include": ["src/**/*"],
"exclude": ["node_modules", "dist"]
}
Extends μ΅μ
extends μ΅μ
μ μ¬μ©νλ©΄ λ€λ₯Έ tsconfig.json νμΌμμ μ»΄νμΌλ¬ μ΅μ
μ μμλ°μ μ μμ΅λλ€. μ΄λ μ¬λ¬ νλ‘μ νΈ κ°μ κ³΅ν΅ κ΅¬μ± μ€μ μ 곡μ νκ±°λ κΈ°λ³Έ ꡬμ±μ λ§λλ λ° μ μ©ν©λλ€. extends μ΅μ
μ μ¬μ©νλ©΄ μ½λ μ¬μ¬μ©μ μ΄μ§νκ³ μ€λ³΅μ μ€μΌ μ μμ΅λλ€. κΈ°λ³Έ ꡬμ±μ λ§λ€κ³ κ°λ³ νλ‘μ νΈμμ νμ₯νλ κ²μ΄ λͺ¨λ² μ¬λ‘μ
λλ€.
μμ:
{
"extends": "./tsconfig.base.json",
"compilerOptions": {
"jsx": "react-jsx"
},
"include": ["src/**/*"]
}
κ³ κΈ κ΅¬μ±
νμ μ»΄νμΌλ¬ μ΅μ
μΈμλ tsconfig.jsonμ νΉμν μλ리μ€λ₯Ό μν κ³ κΈ κ΅¬μ±μ μ§μν©λλ€.
μ¦λΆ μ»΄νμΌ
λκ·λͺ¨ νλ‘μ νΈμ κ²½μ° μ¦λΆ μ»΄νμΌμ λΉλ μκ°μ ν¬κ² ν₯μμν¬ μ μμ΅λλ€. TypeScriptλ μ΄μ μ»΄νμΌ κ²°κ³Όλ₯Ό μΊμνκ³ λ³κ²½λ νμΌλ§ λ€μ μ»΄νμΌν μ μμ΅λλ€. μ¦λΆ μ»΄νμΌμ νμ±ννλ©΄ λκ·λͺ¨ νλ‘μ νΈμ λΉλ μκ°μ νκΈ°μ μΌλ‘ μ€μΌ μ μμ΅λλ€. μ΄λ λ§μ μμ νμΌκ³Ό μ’ μμ±μ κ°μ§ νλ‘μ νΈμ νΉν μ€μν©λλ€.
{
"compilerOptions": {
"incremental": true,
"tsBuildInfoFile": ".tsbuildinfo"
}
}
νλ‘μ νΈ μ°Έμ‘°
νλ‘μ νΈ μ°Έμ‘°λ₯Ό μ¬μ©νλ©΄ λκ·λͺ¨ TypeScript νλ‘μ νΈλ₯Ό λ μκ³ λ 립μ μΈ λͺ¨λλ‘ κ΅¬μ‘°νν μ μμ΅λλ€. μ΄λ λΉλ μκ°κ³Ό μ½λ ꡬμ±μ κ°μ ν μ μμ΅λλ€. νλ‘μ νΈ μ°Έμ‘°λ₯Ό μ¬μ©νλ©΄ λκ·λͺ¨ νλ‘μ νΈλ₯Ό λ κ΄λ¦¬νκΈ° μ½κ³ μ μ§λ³΄μνκΈ° μ½κ² λ§λ€ μ μμ΅λλ€. ν¬κ³ 볡μ‘ν νλ‘μ νΈμλ νλ‘μ νΈ μ°Έμ‘°λ₯Ό μ¬μ©νλ κ²μ΄ λͺ¨λ² μ¬λ‘μ λλ€.
{
"compilerOptions": {
"composite": true
},
"references": [
{ "path": "./module1" },
{ "path": "./module2" }
]
}
μ¬μ©μ μ§μ νμ μ μ
λλ‘λ νμ
μ μκ° μλ JavaScript λΌμ΄λΈλ¬λ¦¬μ λν νμ
μ μλ₯Ό μ 곡ν΄μΌ ν μλ μμ΅λλ€. μ¬μ©μ μ§μ .d.ts νμΌμ λ§λ€μ΄ μ΄λ¬ν λΌμ΄λΈλ¬λ¦¬μ νμ
μ μ μν μ μμ΅λλ€. μ¬μ©μ μ§μ νμ
μ μλ₯Ό μμ±νλ©΄ νμ
μμ μ±μ ν¬μνμ§ μκ³ λ TypeScript μ½λμμ JavaScript λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©ν μ μμ΅λλ€. μ΄λ λ κ±°μ JavaScript μ½λλ μ체 νμ
μ μλ₯Ό μ 곡νμ§ μλ λΌμ΄λΈλ¬λ¦¬μ μμ
ν λ νΉν μ μ©ν©λλ€.
// custom.d.ts
declare module 'my-library' {
export function doSomething(x: number): string;
}
λͺ¨λ² μ¬λ‘
- μ격 λͺ¨λ μ¬μ©: ν₯μλ νμ
κ²μ¬λ₯Ό μν΄
strictμ΅μ μ νμ±ννμΈμ. - λμ μ§μ : λ°νμ νκ²½μ μ ν©ν
targetλ²μ μ μ ννμΈμ. - μΆλ ₯ ꡬμ±:
outDirμ μ¬μ©νμ¬ μμ€ μ½λμ μ»΄νμΌλ μ½λλ₯Ό λΆλ¦¬νμΈμ. - μ’
μμ± κ΄λ¦¬:
includeλ°excludeλ₯Ό μ¬μ©νμ¬ μ»΄νμΌν νμΌμ μ μ΄νμΈμ. - Extends νμ©:
extendsμ΅μ μΌλ‘ κ³΅ν΅ κ΅¬μ± μ€μ μ 곡μ νμΈμ. - λ²μ κ΄λ¦¬μ μ€μ νμΌ ν¬ν¨: κ°λ° νκ²½κ³Ό CI/CD νμ΄νλΌμΈ μ λ°μ κ±Έμ³ μΌκ΄μ±μ μ μ§νκΈ° μν΄ `tsconfig.json`μ gitμ 컀λ°νμΈμ.
μΌλ°μ μΈ λ¬Έμ ν΄κ²°
tsconfig.jsonμ ꡬμ±νλ κ²μ λλλ‘ μ΄λ €μΈ μ μμ΅λλ€. λ€μμ λͺ κ°μ§ μΌλ°μ μΈ λ¬Έμ μ ν΄κ²° λ°©λ²μ
λλ€:
λͺ¨λ νμΈ λ¬Έμ
λͺ¨λ νμΈ μ€λ₯κ° λ°μνλ©΄ moduleResolution μ΅μ
μ΄ μ¬λ°λ₯΄κ² ꡬμ±λμλμ§, baseUrl λ° paths μ΅μ
μ΄ μ λλ‘ μ€μ λμλμ§ νμΈνμΈμ. paths μ΅μ
μ μ§μ λ κ²½λ‘κ° μ¬λ°λ₯Έμ§ λ€μ νμΈνμΈμ. νμν λͺ¨λ λͺ¨λμ΄ node_modules λλ ν°λ¦¬μ μ€μΉλμλμ§ νμΈνμΈμ.
νμ μ€λ₯
νμ μ μκ° λΆμ ννκ±°λ λλ½λ κ²½μ° νμ μ€λ₯κ° λ°μν μ μμ΅λλ€. μ¬μ© μ€μΈ λͺ¨λ λΌμ΄λΈλ¬λ¦¬μ λν΄ μ¬λ°λ₯Έ νμ μ μκ° μ€μΉλμ΄ μλμ§ νμΈνμΈμ. νμ μ μκ° μλ JavaScript λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©νλ κ²½μ° μ¬μ©μ μ§μ νμ μ μλ₯Ό λ§λλ κ²μ κ³ λ €νμΈμ.
μ»΄νμΌ μ€λ₯
TypeScript μ½λμ ꡬ문 μ€λ₯λ νμ μ€λ₯κ° μλ κ²½μ° μ»΄νμΌ μ€λ₯κ° λ°μν μ μμ΅λλ€. μ€λ₯ λ©μμ§λ₯Ό μ£Όμ κΉκ² κ²ν νκ³ κ΅¬λ¬Έ μ€λ₯λ νμ μ€λ₯λ₯Ό μμ νμΈμ. μ½λκ° TypeScript μ½λ© κ·μΉμ λ°λ₯΄λμ§ νμΈνμΈμ.
κ²°λ‘
μ ꡬμ±λ tsconfig.json νμΌμ μ±κ³΅μ μΈ TypeScript νλ‘μ νΈμ νμμ μ
λλ€. νμ μ»΄νμΌλ¬ μ΅μ
κ³Ό κ³ κΈ κ΅¬μ±μ μ΄ν΄ν¨μΌλ‘μ¨ κ°λ° μν¬νλ‘λ₯Ό μ΅μ ννκ³ , μ½λ νμ§μ ν₯μμν€λ©°, λμ νκ²½κ³Όμ νΈνμ±μ 보μ₯ν μ μμ΅λλ€. tsconfig.jsonμ μ¬λ°λ₯΄κ² ꡬμ±νλ λ° μκ°μ ν¬μνλ©΄ μ€λ₯λ₯Ό μ€μ΄κ³ , μ μ§λ³΄μμ±μ ν₯μμν€λ©°, λΉλ νλ‘μΈμ€λ₯Ό κ°μννμ¬ μ₯κΈ°μ μΌλ‘ μ΄μ΅μ΄ λ κ²μ
λλ€. μ΄λ λ ν¨μ¨μ μ΄κ³ μ λ’°ν μ μλ μννΈμ¨μ΄ κ°λ°λ‘ μ΄μ΄μ§λλ€. μ¬κΈ°μ μ 곡λ μ 보λ 보νΈμ μΌλ‘ μ μ© κ°λ₯νλλ‘ μ€κ³λμμΌλ©°, TypeScriptλ‘ μλ‘μ΄ νλ‘μ νΈλ₯Ό μμνκΈ° μν κ²¬κ³ ν κΈ°λ°μ μ 곡ν΄μΌ ν©λλ€.
λͺ¨λ μ¬μ© κ°λ₯ν μ»΄νμΌλ¬ μ΅μ μ λν μ΅μ μ 보μ μμΈν μ€λͺ μ λ³΄λ €λ©΄ 곡μ TypeScript λ¬Έμλ₯Ό μ°Έμ‘°νλ κ²μ μμ§ λ§μΈμ. TypeScript λ¬Έμλ TypeScript ꡬμ±μ 볡μ‘μ±μ μ΄ν΄νλ λ° κ·μ€ν μλ£μ λλ€.