FRONTMANFRONTMAN
  • 태그
  • 방명록
  • 글쓰기
  • 관리자
  • HOME
  • 태그
  • 방명록
TypeScript 객체(Object)와 배열(Array)에서의 타입
hahekaku
TypeScript 객체(Object)와 배열(Array)에서의 타입Language/TypeScript2023. 10. 16. 00:57@hahekaku
Table of Contents

객체(Object) 타입 정의

TypeScript에서 객체 타입은 객체의 형태를 정의하여 더욱 안전하고 명확한 코드를 작성할 수 있게 해줍니다. 객체 타입 정의는 주로 다음과 같은 방법을 사용합니다.

객체 타입 기본 정의

객체 타입을 정의하려면 각 속성과 그 타입을 명시합니다.

interface User {
  id: number;
  name: string;
  isActive: boolean;
}

const user: User = {
  id: 1,
  name: '홍길동',
  isActive: true,
};

선택적(Optional) 속성

?를 사용하여 객체의 속성을 선택적으로 만들 수 있습니다.

interface Product {
  id: number;
  name: string;
  description?: string; // 선택적 속성
}

const product1: Product = {
  id: 101,
  name: '키보드',
};

const product2: Product = {
  id: 102,
  name: '마우스',
  description: '무선 마우스',
};

인덱스 시그니처(Index Signature)

객체가 동적으로 속성을 가질 수 있다면 인덱스 시그니처를 사용할 수 있습니다.

interface StringKeyObject {
  [key: string]: string; // 모든 속성 값이 문자열이어야 함
}

const translations: StringKeyObject = {
  hello: '안녕하세요',
  goodbye: '안녕히 가세요',
};

배열(Array) 타입 정의

TypeScript에서 배열의 타입은 배열이 포함할 수 있는 요소의 타입을 정의하여 안정성을 보장합니다.

배열 타입 기본 정의

가장 기본적인 배열 타입 정의 방법은 타입[] 또는 Array<타입>을 사용하는 것입니다.

const numbers: number[] = [1, 2, 3, 4, 5];
const fruits: Array<string> = ['사과', '바나나', '포도'];

배열에 특정 타입만 허용

배열 요소의 타입을 명시적으로 지정하여 특정 타입만 포함하도록 제한할 수 있습니다.

interface Task {
  id: number;
  title: string;
  completed: boolean;
}

const tasks: Task[] = [
  { id: 1, title: '코딩하기', completed: false },
  { id: 2, title: '운동하기', completed: true },
];

튜플(Tuple)이란?

튜플은 고정된 수의 요소를 가지며, 각 요소의 타입이 다를 수 있는 배열입니다. 일반적인 배열과 다르게 요소의 수와 타입이 고정됩니다.

튜플 정의 및 사용

튜플은 배열과 비슷하지만 각 위치에 특정 타입이 정해져 있습니다.

const tuple: [string, number] = ['홍길동', 30];

튜플을 이용한 여러 값 반환

튜플은 함수에서 여러 값을 반환할 때 유용하게 사용됩니다.

function getUserInfo(): [string, number] {
  return ['홍길동', 30];
}

const [name, age] = getUserInfo();
console.log(name); // 홍길동
console.log(age);  // 30

읽기 전용(Readonly) 속성과 배열

readonly 키워드를 사용하면 객체의 속성이나 배열의 요소를 변경할 수 없게 할 수 있습니다.

객체의 읽기 전용 속성

readonly를 사용해 특정 속성을 수정하지 못하도록 설정합니다.

interface Profile {
  readonly id: number;
  name: string;
}

const profile: Profile = {
  id: 1,
  name: '김철수',
};

// profile.id = 2; // 오류 발생: 읽기 전용 속성은 수정할 수 없음
profile.name = '김영희';

읽기 전용 배열

ReadonlyArray 타입을 사용하면 배열을 읽기 전용으로 만들 수 있습니다.

const readonlyNumbers: ReadonlyArray<number> = [10, 20, 30];
// readonlyNumbers[0] = 40; // 오류 발생: 읽기 전용 배열은 수정할 수 없음

ReadonlyArray를 일반 배열로 변환하려면 as 키워드를 사용할 수 있습니다.

const mutableNumbers = readonlyNumbers as number[];
mutableNumbers[0] = 40;

 

'Language > TypeScript' 카테고리의 다른 글

TypeScript interface와 type aliasing  (0) 2023.10.16
TypeScript 함수 타입 정의  (0) 2023.10.16
TypeScript 기본 타입  (0) 2023.10.16
TypeScript 설치 방법 및 기본 설정  (0) 2023.10.16
TypeScript란?  (0) 2023.10.15
Language/TypeScript 추천 글
more
  • TypeScript interface와 type aliasing
    TypeScript interface와 type aliasing2023.10.16
  • TypeScript 함수 타입 정의
    TypeScript 함수 타입 정의2023.10.16
  • TypeScript 기본 타입
    TypeScript 기본 타입2023.10.16
  • TypeScript 설치 방법 및 기본 설정
    TypeScript 설치 방법 및 기본 설정2023.10.16
FRONTMAN

검색

250x250

방문자 수

Total
Today
Yesterday

카테고리

  • 분류 전체보기 (54)
    • Language (48)
      • JavaScript (15)
      • TypeScript (14)
      • Python (14)
      • Dart (5)
      • Java (0)
    • FE (6)
      • WEB (4)
      • React (0)
      • Flutter (1)
    • CS (0)
      • Algorithm (0)
      • Network (0)
    • DevOps (0)

공지사항

  • 전체보기

최근 글

인기 글

태그

  • Import
  • 자바스크립트
  • Type
  • DART
  • nodejs
  • 리스트
  • 타입스크립트
  • 웹
  • frontend
  • list
  • inline frame
  • export
  • typeScript
  • function
  • OOP
  • npm
  • 파이썬
  • Interface
  • Flutter
  • Python
  • 타입
  • js
  • JavaScript
  • web
  • await
  • CLASS
  • Object
  • Modules
  • tuple
  • async

최근 댓글

FRONTMAN :: hahekaku
CopyrightBluemivDesigned byBluemiv

티스토리툴바