[TIL] 221124-25

BeanxxΒ·2022λ…„ 11μ›” 25일
0

TIL

λͺ©λ‘ 보기
102/120
post-thumbnail

πŸ”₯ 였늘 ν•œ 일

  • ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ Lv.1 μ˜Ήμ•Œμ΄(2), κΈ°μ‚¬λ‹¨μ›μ˜ 무기 2문제 μ™„λ£Œ
  • [TS-ν”Œμ ]
    • Mypage νŽ˜μ΄μ§€ λ ˆμ΄μ•„μ›ƒ μΆ”κ°€
    • Mypage > InfoContainer, QnaContainer, StatsBox μ»΄ν¬λ„ŒνŠΈ μΆ”κ°€
  • 10:00~11:10 ν† μŠ€μ¦κΆŒ μ½”ν…Œ
  • 14:30~16:00 TSν”Œμ  회의
  • ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ Lv.1 K번째수, μ‹€νŒ¨μœ¨ 2문제 μ™„λ£Œ
  • [Udemy TS] Section3(TS 컴파일러) ν•™μŠ΅

🧚 μƒˆλ‘­κ²Œ μ•Œκ²Œ 된 λ‚΄μš©

πŸ’‘ TS - tsconfig.json options

// tsconfig.json

// ν•΄λ‹Ή 파일 컴파일 μ œμ™Έ
"exclude": [
	"analytics.ts",
	"**/*.dev.ts" // λͺ¨λ“  ν΄λ”μ—μ„œ .dev.ts 이름을 ν¬ν•¨ν•˜λŠ” νŒŒμΌλ“€ λ¬΄μ‹œ
	"node_modules"
],
// "exclude" μ˜΅μ…˜μ„ μ•„μ˜ˆ μ§€μ •ν•˜μ§€ μ•ŠμœΌλ©΄ "node_modules"λŠ” μžλ™μœΌλ‘œ μ œμ™Έλ¨

// μ»΄νŒŒμΌν•  νŒŒμΌλ“€
"include": [
	...
],
// "include" μ˜΅μ…˜μ„ μ•„μ˜ˆ μ§€μ •ν•˜μ§€ μ•ŠμœΌλ©΄ λͺ¨λ“  파일 컴파일

// μ»΄νŒŒμΌν•˜κ³ μž ν•˜λŠ” κ°œλ³„ 파일만 지정 κ°€λŠ₯
"files": [
	"app.ts"
]

// compilerOptions: TSμ½”λ“œκ°€ μ»΄νŒŒμΌλ˜λŠ” 방식 관리
"compilerOptions": {
  "target": "es6", // μ–΄λ–€ JS 버전을 λŒ€μƒμœΌλ‘œ μ½”λ“œλ₯Ό μ»΄νŒŒμΌν•  것인지
  "lib": [], // dom으둜 μž‘μ—…μ„ μˆ˜ν–‰ν•˜λŠ” ν•­λͺ©λ“€(κΈ°λ³Έ 객체, κΈ°λŠ₯, TSλ…Έλ“œ)을 μ§€μ •ν•˜κ²Œ ν•΄μ£ΌλŠ” μ˜΅μ…˜
  
  // μ•„λž˜ 두 μ˜΅μ…˜μ€ TS + JS νŒŒμΌλ„ ν•¨κ»˜ κ²€μ‚¬ν•˜κ³  싢은 κ²½μš°μ— μ‚¬μš©
  "allowJs": true, // TSκ°€ JS νŒŒμΌμ„ μ»΄νŒŒμΌν•  수 μžˆλ„λ‘ ν•΄μ€Œ
  "checkJs": true, // TSκ°€ 컴파일 μˆ˜ν–‰ν•˜μ§€ μ•Šλ”λΌλ„ ꡬ문 검사 및 잠재적 μ—λŸ¬ λ³΄κ³ ν•΄μ€Œ
	
  "sourceMap": true, // μž…λ ₯ νŒŒμΌμ— JSνŒŒμΌμ„ μ—°κ²°ν•˜λŠ” μ΅œμ‹  λΈŒλΌμš°μ €μ™€ 개발자 도ꡬ κ°„μ˜ 닀리 μ—­ν• 

  "outDir": "./dist", // μƒμ„±λœ 파일 μ €μž₯ μœ„μΉ˜
  "rootDir": "./src", // 루트 폴더 지정
  "removeComments": true, // TS 파일의 λͺ¨λ“  주석이 컴파일된 JS νŒŒμΌμ—μ„œ 제거됨
  "noEmit": true, // JS 파일 생성 X
  "noEmitOnError": true, // errorκ°€ λ‚˜λŠ” TS νŒŒμΌμ— λŒ€ν•œ 좜λ ₯ νŒŒμΌμ— μƒμ„±λ˜μ§€ μ•ŠμŒ (기본값은 false)

  /* Type Checking */
  "strict": true,               // true: strict κ΄€λ ¨ λͺ¨λ“  μ˜΅μ…˜μ„ κ°œλ³„μ μœΌλ‘œ μ„€μ •ν•˜λŠ” 것과 κ°™μŒ (λͺ¨λ“  μ˜΅μ…˜μ΄ true둜 섀정됨)
  "noImplicitAny": true,        // μ•”λ¬΅μ μœΌλ‘œ νƒ€μž…μ„ any둜 μ„€μ •ν•˜μ§€ μ•ŠμŒ 즉, true일 λ•Œ νƒ€μž…μ„ μ§€μ •ν•˜μ§€ μ•ŠμœΌλ©΄ error
  "strictNullChecks": true,     // null 값을 잠재적으둜 κ°€μ§ˆ 수 μžˆλŠ” 값에 μ ‘κ·Όν•˜κ³  μž‘μ—…ν•˜λŠ” 방식을 TSμ—κ²Œ μ•Œλ €μ€Œ
  "strictFunctionTypes": true,  // λ§€κ°œλ³€μˆ˜μ™€ λ°˜ν™˜ 값에 λŒ€ν•΄ ν•¨μˆ˜κ°€ μ–΄λ–»κ²Œ ν‘œμ‹œλ˜λŠ”μ§€ μ •μ˜
  "strictBindCallApply": true,  // κ²°ν•©ν•˜κ³  ν˜ΈμΆœν•˜κ³  μ μš©ν•˜λŠ” μž‘μ—…μ— 유용
  "noImplicitThis": true,       // this ν‚€μ›Œλ“œμ™€ κ΄€λ ¨ 있으며, TSλŠ” this ν‚€μ›Œλ“œλ₯Ό λͺ…ν™•ν•˜μ§€ μ•Šμ€ μœ„μΉ˜μ—μ„œ μ‚¬μš©λ˜λ©΄ κ²½κ³ 
  "alwaysStrict": true,         // strict λͺ¨λ“œλ₯Ό μ‚¬μš©ν•˜λŠ” μƒμ„±λ˜λŠ” JS 파일이 μΆ”κ°€λ˜λ„λ‘ μ œμ–΄
}

// dist 폴더: λͺ¨λ“  좜λ ₯κ°’ 보관
// src 폴더: ts 파일 μ €μž₯
! // null이 μ•„λ‹Œ 값을 λ°˜ν™˜ν•œλ‹€λŠ” κ±Έ μ•Œ 수 있게 ν•΄μ£ΌλŠ” μ—­ν• 
if (button) {...} // μš”λŸ° μ‹μœΌλ‘œ if문을 톡해 null값이 아닐 λ•Œ μ½”λ“œλ₯Ό μ‹€ν–‰ν•˜λ„λ‘ ν•΄μ€˜λ„ !μ—°μ‚°μžλ₯Ό 쓴것과 λ™μΌν•œ κΈ°λŠ₯

bind() // 전달될 인수λ₯Ό μž¬κ΅¬μ„±ν•˜κ³ μž ν•  λ•Œ (κ²°ν•©ν•˜κ³ μž ν•˜λŠ” ν•­λͺ©μ„ 인자둜 μž‘μ„±)
.map // map file은 JS & TS 파일 κ°„μ˜ 디버거λ₯Ό μ΄μ–΄μ£ΌλŠ” μ—­ν• 

πŸ‘€Β MEMO

🎨 랜덀 ν”„λ‘œν•„ 이미지

boring-avatars urlλ₯Ό μ΄μš©ν•΄μ„œ 랜덀 ν”„λ‘œν•„ 이미지 생성해보기~!

πŸ”—[μ°Έκ³  λΈ”λ‘œκ·Έ] Boring Avatars
πŸ”—[github] boring-avatars-service

✍️ Diary

μ˜€μ „μ— λ³Έ ν† μŠ€μ¦κΆŒ μ½”ν…ŒλŠ” μ—­μ‹œλ‚˜ κ΄‘νƒˆ,,, 70λΆ„ μ•ˆμ— ν•œλ‘λ¬Έμ œ ν‘ΈλŠ” 것도 벅찬데 6λ¬Έμ œλ‚˜ ν’€μ–΄μ•Ό ν•œλ‹€λ‹ˆ.. 문제 μ ‘κ·Ό μžμ²΄κ°€ μƒμ†Œν•œ λ¬Έμ œκ°€ λ§Žμ•„μ„œ μ•„μ˜ˆ 손도 λͺ» λŒ„ λ¬Έμ œλ„ μžˆμ—ˆλ‹€. πŸ₯²
ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ μ½”ν…Œ λ ™1 문제 μ€‘μ—μ„œ 카카였 λ¬Έμ œλŠ” 괜히 겁만 λ¨Ήκ³  계속 λ―Έλ€˜μ—ˆλŠ”λ° μ‹€νŒ¨μœ¨ λ¬Έμ œλŠ” μ‹œκ°„μ€ μ’€ κ±Έλ Έμ§€λ§Œ λ‚˜λ¦„ 재밌게 ν’€μ—ˆλ”°!

profile
FE developer

0개의 λŒ“κΈ€