λ°˜μ‘ν˜•

Typescript Study 4

[TypeScript] νƒ€μž…μŠ€ν¬λ¦½νŠΈ μœ ν‹Έλ¦¬ν‹° νƒ€μž… Omit μ•Œμ•„λ³΄κΈ°

Introμ•ˆλ…•ν•˜μ„Έμš”. 이번 μ‹œκ°„μ—λŠ” νƒ€μž…μŠ€ν¬λ¦½νŠΈ μœ ν‹Έλ¦¬ν‹° νƒ€μž…μΈ Omit에 λŒ€ν•΄ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€. μ°Έκ³ λ‘œ μœ ν‹Έλ¦¬ν‹° νƒ€μž… (Utility Types)은 TypeScriptμ—μ„œ κΈ°μ‘΄ νƒ€μž…μ„ λ³€ν˜•ν•˜κ±°λ‚˜ ν™•μž₯ν•˜μ—¬ μƒˆλ‘œμš΄ νƒ€μž…μ„ μ‰½κ²Œ 생성할 수 μžˆλ„λ‘ λ„μ™€μ£ΌλŠ” λ‚΄μž₯ νƒ€μž…λ“€μž…λ‹ˆλ‹€. TypeScriptλŠ” κ°•λ ₯ν•œ νƒ€μž… μ‹œμŠ€ν…œμ„ μ œκ³΅ν•˜λŠ” λ™μ‹œμ—, λ³΅μž‘ν•œ νƒ€μž… μ •μ˜λ₯Ό λ‹¨μˆœν™”ν•˜κΈ° μœ„ν•΄ μ—¬λŸ¬ κ°€μ§€ μœ ν‹Έλ¦¬ν‹° νƒ€μž…μ„ μ œκ³΅ν•©λ‹ˆλ‹€. 이 νƒ€μž…λ“€μ€ νŠΉμ •ν•œ μž‘μ—…(예: 선택적 ν•„λ“œλ‘œ λ³€ν™˜, νŠΉμ • 속성 제거 λ“±)을 μˆ˜ν–‰ν•˜κΈ° μœ„ν•œ 미리 μ •μ˜λœ ν…œν”Œλ¦Ώμ²˜λŸΌ μž‘λ™ν•©λ‹ˆλ‹€. Omit κΈ°λ³Έ 문법Omit은 TypeScriptμ—μ„œ μ œκ³΅ν•˜λŠ” μœ ν‹Έλ¦¬ν‹° νƒ€μž… μ€‘ ν•˜λ‚˜λ‘œ, νŠΉμ • κ°μ²΄ νƒ€μž…μ—μ„œ μ§€μ •λœ ν‚€λ₯Ό μ œκ±°ν•œ μƒˆλ‘œμš΄ νƒ€μž…을 μƒμ„±ν•˜λŠ” λ° μ‚¬μš©λ©λ‹ˆλ‹€. μ΄ μœ ν‹Έλ¦¬ν‹° νƒ€..

[TypeScript] Error: Redundant double negation. no-extra-boolean-cast 였λ₯˜ 원인 및 ν•΄κ²° 방법

Intro μ•ˆλ…•ν•˜μ„Έμš”. νƒ€μž…μŠ€ν¬λ¦½νŠΈ μ‚¬μš© 쀑 λ‹€μŒμ˜ μ—λŸ¬κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. Error: Redundant double negation. no-extra-boolean-cast {text} Why μœ„ μ—λŸ¬λŠ” ESLint의 no-extra-boolean-cast κ·œμΉ™μœΌλ‘œ, λΆˆν•„μš”ν•œ λΆˆλ¦¬μ–Έ 캐슀트(뢈린 값을 κ°•μ œλ‘œ μΊμŠ€νŒ…ν•˜λŠ” 것)λ₯Ό λ°©μ§€ν•˜κΈ° μœ„ν•œ κ·œμΉ™μž…λ‹ˆλ‹€. ν˜„μž¬ !!visible와 같은 ν˜•νƒœλ‘œ 뢈린 값을 κ°•μ œλ‘œ μΊμŠ€νŒ…ν•˜κ³  ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. 이미 λΆˆλ¦¬μ–Έ 값이 μ‘΄μž¬ν•˜κΈ° λ•Œλ¬Έμ— 이쀑 λΆ€μ • μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•˜μ—¬ λΆˆλ¦¬μ–Έ 값이 될 ν•„μš”κ°€ μ—†μŠ΅λ‹ˆλ‹€. How to solve λ”°λΌμ„œ μ•„λž˜μ™€ 같이 이쀑 λΆ€μ • μ—°μ‚°μžλ₯Ό μ œκ±°ν•˜λ©΄ ESLint μ—λŸ¬κ°€ μ‚¬λΌμ§‘λ‹ˆλ‹€. visible 자체λ₯Ό μ‚¬μš©ν•΄λ„ λ™μΌν•œ κ²°κ³Όλ₯Ό 얻을 수 μžˆμŠ΅λ‹ˆλ‹€. {text}

[TypeScript] Could not find a declaration file for module 였λ₯˜ 원인 및 ν•΄κ²° 방법

Intro μ•ˆλ…•ν•˜μ„Έμš”. νƒ€μž…μŠ€ν¬λ¦½νŠΈ μ‚¬μš© 쀑 λ‹€μŒμ˜ μ—λŸ¬κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. Could not find a declaration file for module Why? 이 였λ₯˜ λ©”μ‹œμ§€λŠ” μ—°κ²°λœ declaration file 이 μ—†λŠ” νƒ€μž…μŠ€ν¬λ¦½νŠΈ μ½”λ“œ μ•ˆμ— λͺ¨λ“ˆμ΄λ‚˜ 라이브러리λ₯Ό μ‚¬μš©ν•  λ•Œ λ°œμƒν•˜λŠ” μ „ν˜•μ μΈ 였λ₯˜μž…λ‹ˆλ‹€. declaration file(.d.ts)λŠ” λͺ¨λ“ˆμ΄λ‚˜ 라이브러리의 types, functions 및 기타 속성을 μ„€λͺ…ν•˜κ³  νƒ€μž…μŠ€ν¬λ¦½νŠΈκ°€ μ½”λ“œμ—μ„œ 이듀을 μ‚¬μš©ν•˜λŠ” 방법을 이해할 수 μžˆλ„λ‘ ν•©λ‹ˆλ‹€. λ”°λΌμ„œ μ„€μΉ˜λœ νŠΉμ • λͺ¨λ“ˆ/λΌμ΄λΈŒλŸ¬λ¦¬μ— λŒ€ν•œ type μ •μ˜κ°€ μ—†μ–΄ νƒ€μž…μŠ€ν¬λ¦½νŠΈμ—μ„œ 이해할 수 μ—†μœΌλ―€λ‘œ λ‹€μŒμ˜ 였λ₯˜κ°€ λ°œμƒν•œ κ²ƒμž…λ‹ˆλ‹€. How to solve the problem 이 였λ₯˜λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄μ„œλŠ”..

[TypeScript] The left-hand side of an assignment expression may not be an optional property access 였λ₯˜ 원인 및 ν•΄κ²° 방법

Intro μ•ˆλ…•ν•˜μ„Έμš”. TypeScript νƒ€μž…μŠ€ν¬λ¦½νŠΈμ—μ„œ refλ₯Ό μ‚¬μš©ν•˜μ—¬ scrollTop μœ„μΉ˜λ₯Ό λ³€κ²½ν•˜λ˜ 도쀑 μ•„λž˜μ™€ 같은 μ—λŸ¬κ°€ λ°œμƒν•˜μ˜€μŠ΅λ‹ˆλ‹€ someRef?.current?.scrollTop = 0; TS2779: The left-hand side of an assignment expression may not be an optional property access Why? μŠ€νŽ™ μƒμ—μ„œ μ˜΅μ…”λ„ 체이닝과 할당을 같이 μ‚¬μš©ν•  수 μ—†λ‹€κ³  ν•©λ‹ˆλ‹€. The following is not supported, although it has some use cases; see Issue #18 for discussion: optional property assignment: a?.b = c How to solv..

λ°˜μ‘ν˜•