Nested Objects & Types

const product { id: string; price: number; tags: string[]; details: { title: string; description: string; } } = { id: 'abc1', price: 12.99, tags: ['great-offer', 'hot-and-new'], details: { title: 'Red Carpet', description: 'A great carpet - almost brand-new!' } }

Object

객체 νƒ€μž…

const user: { name: string; height: number; } = { name: 'μ•ˆν¬μ’…', height: 176 };
이 λ•Œ 객체 νƒ€μž… μ •μ˜λŠ” 였브젝트 λ¦¬ν„°λŸ΄κ³Ό λ‹€μŒκ³Ό 같은 차이점을 κ°–λŠ”λ‹€.
  • 콜둠(:)의 μš°λ³€μ—λŠ” κ°’ λŒ€μ‹  ν•΄λ‹Ή μ†μ„±μ˜ νƒ€μž…μ΄ λ“€μ–΄κ°„λ‹€.
  • κ΅¬λΆ„μžλ‘œ 콀마(,) 뿐만 μ•„λ‹ˆλΌ μ„Έλ―Έμ½œλ‘ (;)을 μ‚¬μš©ν•  수 μžˆλ‹€.

선택 속성

const userWithUnknownHeight: { name: string; height?: number; } = { name: 'κΉ€μˆ˜ν•œλ¬΄' };

μ½κΈ°μ „μš© 속성

속성λͺ… μ•žμ— readonly ν‚€μ›Œλ“œλ₯Ό λΆ™μ—¬ ν•΄λ‹Ή μ†μ„±μ˜ μž¬ν• λ‹Ήμ„ 막을 수 μžˆλ‹€. readonly ν‚€μ›Œλ“œκ°€ 뢙은 속성은 const ν‚€μ›Œλ“œλ₯Ό μ΄μš©ν•œ λ³€μˆ˜μ˜ μ •μ˜μ™€ λΉ„μŠ·ν•˜κ²Œ λ™μž‘ν•œλ‹€.
const user: { readonly name: string; height: numer; } = { name: 'μ•ˆν¬μ’…', height: 176 }; user.name = 'μ’…ν¬μ•ˆ'; // error TS2540: Cannot assign to 'name' because it is a constant or a read-only property.

Array 1

let arr: number[] = [1, 2, 3];

Array 2

let arr: Array<number> = [1, 2, 3];