타입스크립트에서 상수(constant)의 타입을 정의하는 방법은 무엇인가요?
_____A1: 상수를 선언할 때 `const` 키워드를 사용하며, 변수명 뒤에 콜론(:)과 타입을 명시하여 타입을 정의할 수 있습니다.
예:
```typescript
const PI: number = 3.14;
const GREETING: string = "Hello";
```
Q2: 상수 선언 시 타입을 적지 않아도 되나요?
A2: 네, 타입스크립트는 타입 추론 기능이 있어 타입을 명시하지 않아도 자동으로 타입을 추론합니다.
예:
```typescript
const count = 10; // number로 추론
const message = "Hi"; // string으로 추론
```
Q3: 상수에 리터럴 타입을 명시하는 방법은?
A3: 상수에 특정 리터럴 타입(예: 특정 문자열, 숫자 값)으로 타입을 지정하려면, 구체적인 값을 타입으로 지정할 수 있습니다. 이렇게 하면 해당 값 외에는 할당할 수 없습니다.
```typescript
const STATUS: "success" = "success";
const MAX_RETRIES: 3 = 3;
```
Q4: 리터럴 타입이 자동으로 부여되는 경우가 있나요?
A4: `const`로 선언된 변수는 기본적으로 해당 값의 리터럴 타입을 갖습니다. 예:
```typescript
const MODE = "dark"; // 타입은 "dark" (문자열 리터럴 타입)
```
반면 `let`이나 `var`는 타입이 넓게 추론됩니다.
```typescript
let mode = "dark"; // 타입은 string (리터럴 타입 아님)
```
Q5: 객체나 배열 상수의 타입 선언 방법은 어떻게 되나요?
A5: 객체나 배열도 타입을 지정할 수 있습니다.
예:
```typescript
const settings: { readonly theme: string; version: number } = { theme: "dark", version: 1 };
const numbers: readonly number[] = [1, 2, 3]; // readonly 배열 타입
```
Q6: enum 상수를 타입으로 사용 가능한가요?
A6: 네, enum으로 상수를 정의하고 타입으로 지정할 수 있습니다.
```typescript
enum Direction {
Up,
Down,
Left,
Right
}
const move: Direction = Direction.Up;
```
Q7: 상수 타입 선언 시 주의할 점이 있나요?
A7: 명시적인 리터럴 타입을 사용할 경우, 값 변경이 불가능하며 오직 해당 값만 할당할 수 있습니다. 또한, 객체를 `const`로 선언해도 내부 프로퍼티는 기본적으로 수정 가능하므로, 불변성을 원한다면 `readonly` 키워드를 함께 사용해야 합니다.
---
요약:
- `const 변수명: 타입 = 값` 으로 타입을 정의
- 타입 추론을 활용해 타입 명시 생략 가능
- 리터럴 타입으로 특정 값 한정 가능
- 객체, 배열에도 타입과 `readonly` 적용 가능
- enum을 타입으로 활용 가능
작성자:
박하윤 [비회원]
| 작성일자: 1년 전
2024-09-10 05:32:12
조회수: 315 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 315 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.