πŸ“ νƒ€μž…μŠ€ν¬λ¦½νŠΈ μžλ™μ™„μ„± κΈ°λŠ₯의 μš°μ„ μˆœμœ„ ( 포인티 λ””μžμΈ μ‹œμŠ€ν…œ ν”„λ‘œμ νŠΈ )

10_2pangΒ·2023λ…„ 7μ›” 27일
0

βš½οΈνŠΈλŸ¬λΈ”μŠˆνŒ…

λͺ©λ‘ 보기
80/94
post-thumbnail

πŸ‘¨β€πŸ’»Β μ‚¬κ±΄


μ„œλ²„μ— 이미지λ₯Ό μ €μž₯ν•˜κ³ , κ·Έ μ΄λ―Έμ§€μ˜ λͺ…을 νƒ€μž…μ§€μ •μœΌλ‘œ ν•œλ²ˆ νŒλ‹¨ν• μˆ˜μžˆκ²Œ 기쑴에 섀정을 ν•΄ λ‘μ—ˆλ‹€. κ·ΈλŸ¬λ‚˜, 좔후에 이미지가 μˆ˜μ •μ΄ λ˜λŠ”μΌμ΄μžˆμœΌλ©΄ νƒ€μž…μ„ λ‹€μ‹œ μˆ˜μ •ν•˜κ³  λ°°ν¬ν•΄μ•Όν•˜λŠ” λ²ˆκ±°λ‘œμ›€μ΄ μžˆμ„κ²ƒμ΄λΌ νŒλ‹¨ν•˜μ˜€λ‹€.
κ·Έλž˜μ„œ μ‚¬μš©ν•œ 것이, string 으둜 νƒ€μž…μ„ μ§€μ •ν•΄λ‘μ—ˆλ‹€.

μ΄λ ‡κ²Œ ν•˜λ‹€λ³΄λ‹ˆ, μ‹€μ œ μš°λ¦¬κ°€ λ§Œλ“  λ””μžμΈμ‹œμŠ€ν…œμ„ μ‚¬μš©ν•˜λŠ” μ‚¬μš©μžκ°€ μžλ™μ™„μ„±μ΄ μ•ˆλ˜μ–΄μ„œ μ˜€νƒ€λ₯Ό λ°œμƒν• μˆ˜μžˆλ‹€λŠ” 생각이 λ“€μ—ˆλ‹€. κ·Έλž˜μ„œ or (|) 을 μ‚¬μš©ν•˜μ—¬, 'μ§€μ •ν•œνƒ€μž… | string' μ΄λŸ°μ‹μœΌλ‘œ νƒ€μž…μ„ μ§€μ •ν•΄λ‘μ—ˆλ‹€.

export interface IIcon {
  name: IconName | string;
  name: string;
  ...
type IconName =
  | 'notice'
  | 'search'
  | 'close'
	...

κ·Έλ ‡μ§€λ§Œ, string이 λ”μš± 넓은 λ²”μœ„λΌ μžλ™μ™„μ„±μ˜ μš°μ„ μˆœμœ„κ°€ string 으둜 μ„€μ •λ˜μ–΄μ„œ μžλ™μ™„μ„±μ΄ λ˜μ§€μ•Šμ•˜λ‹€.

βœ…Β ν•΄κ²°


근본적인 해결방법은 λ μˆ˜μ—†μœΌλ‚˜, κ·Έλž˜λ„ ν•˜λ‚˜μ˜ 방법을 μ°Ύκ²Œλ˜μ—ˆλ‹€.
μ§€μ •λœ νƒ€μž…μ„ κ°’μœΌλ‘œ κ°€μ§€λŠ” μΈν„°νŽ˜μ΄μŠ€μ™€, string을 κ°’μœΌλ‘œ κ°€μ§€λŠ” μΈν„°νŽ˜μ΄μŠ€λ₯Ό μƒμ„±ν•œλ‹€.

interface IIconStrict {
  name: IconName;
  extension?: string;
  height?: number;
  width?: number;
}

interface IIconGeneral {
  name: string;
  extension?: string;
  height?: number;
  width?: number;
}

κ·Έν›„ export νƒ€μž…μ„ ν•˜λŠ”λ° κ·Έ νƒ€μž…μ€ μ•„λž˜μ™€ 같이 μ„€μ •ν•œλ‹€.

export type IIcon = IIconStrict | IIconGeneral;

μ΄λ ‡κ²Œ μ„€μ •ν•˜κ³ , ν•œλ²ˆ ν…ŒμŠ€νŠΈ ν•΄λ³΄λ‹ˆ, μžλ™μ™„μ„±μ΄ 잘 적용된 λͺ¨μŠ΅μ„ 확인할 수 μžˆμ—ˆλ‹€.

μ΄λ•Œ, κΌ­ props 의 값을 λ„£μ„λ•ŒλŠ” μ•„λž˜μ™€ 같이 ν•΄μ€˜μ•Όν•œλ‹€.

<Fnd.IconStyles name={} />

μ—μ„œ {} μ•ˆμ— '' 을 λ„£λŠ”μˆœκ°„, μžλ™μ™„μ„±μ΄ μž‘λ™λ κ²ƒμ΄λ‹€.

πŸ’­Β κ°œμ„ 


  • 근본적인 해결방법은 μ•„λ‹ˆκ³  μ•½κ°„ νŽΈλ²•? 을 μ“°λŠ” 방법이라고 μƒκ°ν•œλ‹€. μ›μ΄ˆμ μœΌλ‘œλŠ” string 이 큰 λ²”μœ„λΌ λ¨Όμ € 탐색을 ν•˜μ§€λ§Œ, κ°•μ œμ μœΌλ‘œ IconName λΆ€ν„° νƒμƒ‰ν•˜λ„λ‘ νƒ€μž…μ„ μ„€μ •ν•˜λŠ”κ²ƒμ΄κΈ° λ•Œλ¬Έμ΄λ‹€.
    λ‹€λ₯Έ 방법이 μžˆλ‹€λ©΄ κ·Έ λ°©λ²•μœΌλ‘œ μ‚¬μš©ν•˜κ³ μ‹Άλ‹€.
profile
μ£Όλ‹ˆμ–΄ ν”„λ‘ νŠΈμ—”λ“œ 개발자 이광렬 μž…λ‹ˆλ‹€ 🌸

0개의 λŒ“κΈ€