안녕하세요! 타입스크립트에서 기본 문법을 이해하는 것은 중요한 단계입니다. 특히 기본 타입에 대한 이해는 타입스크립트의 핵심입니다. 여기 타입스크립트의 주요 기본 타입들에 대해 설명하겠습니다.
1. Boolean
불리언 타입은 true
또는 false
값을 가집니다.
let isDone: boolean = false;
2. Number
타입스크립트에서 모든 숫자는 부동 소수점 값입니다. 타입스크립트는 ECMAScript 표준에 따라 16진수 및 10진수 리터럴 외에도, ECMAScript 2015부터 도입된 2진수 및 8진수를 지원합니다.
let decimal: number = 6;
let hex: number = 0xf00d;
let binary: number = 0b1010;
let octal: number = 0o744;
3. String
문자열 데이터를 나타내며, 큰따옴표("
) 또는 작은따옴표('
)로 텍스트를 감쌉니다.
let color: string = "blue";
color = 'red';
4. Array
두 가지 방식으로 배열 타입을 사용할 수 있습니다: 타입[]
또는 Array<타입>
.
let list: number[] = [1, 2, 3];
// 또는
let list: Array<number> = [1, 2, 3];
5. Tuple
튜플 타입을 사용하면 요소의 타입과 개수가 고정된 배열을 표현할 수 있습니다. 하지만, 요소들의 타입이 서로 다를 수 있습니다.
let x: [string, number];
x = ["hello", 10]; // 올바름
x = [10, "hello"]; // 오류
6. Enum
enum
타입은 값의 집합에 더 친숙한 이름을 부여할 수 있도록 도와줍니다.
enum Color {Red, Green, Blue}
let c: Color = Color.Green;
7. Any
어떤 타입의 값이라도 될 수 있는 경우에 사용합니다. 타입 체크를 하고 싶지 않은 변수에 유용합니다.
let notSure: any = 4;
notSure = "maybe a string instead";
notSure = false; // okay, definitely a boolean
8. Void
어떤 타입도 존재하지 않는 상태, 주로 함수에서 반환값이 없을 때 사용합니다.
function warnUser(): void {
console.log("This is my warning message");
}
9. Null and Undefined
타입스크립트에서 null
과 undefined
는 각각 null
과 undefined
라는 타입을 가집니다.
let u: undefined = undefined;
let n: null = null;
10. Never
절대 발생하지 않는 타입을 나타냅니다. 예를 들어, 항상 예외를 발생시키는 함수의 반환 타입으로 사용될 수 있습니다.
function error(message: string): never {
throw new Error(message);
}
이러한 기본 타입들은 타입스크립트에서 타입 안전성을 제공하는 데 핵심적인 역할을 합니다. 각 타입의 특성을 이해하고 올바르게 사용하는 것이 타입스크립트를 효과적으로 활용하는 데 중요합니다.
타입스크립트에서 object
타입은 비원시 타입(non-primitive type)을 나타냅니다. 즉, number
, string
, boolean
, symbol
, null
, 또는 undefined
가 아닌 나머지를 의미합니다. object
타입을 사용하여 객체에 타입을 지정할 수 있으며, 더 구체적인 객체 구조를 정의하기 위해 인터페이스(interface) 또는 타입 별칭(type alias)을 사용할 수도 있습니다.
기본 Object 타입 사용
let obj: object = {name: "John", age: 30};
이 예제에서 obj
는 객체 타입을 가지며, 어떤 객체도 할당할 수 있습니다. 하지만 이 방식은 객체의 구조에 대해 구체적인 정보를 제공하지 않습니다.
인터페이스를 사용한 객체 구조 정의
인터페이스를 사용하면 객체의 구조를 더 명확하게 정의할 수 있습니다.
interface Person {
name: string;
age: number;
}
let person: Person = {name: "John", age: 30};
이 경우 person
변수는 Person
인터페이스의 구조를 따라야 합니다. 이는 객체가 특정 속성을 가지고 있음을 보장합니다.
타입 별칭을 사용한 객체 구조 정의
타입 별칭도 객체의 구조를 정의하는 데 사용할 수 있습니다.
type Animal = {
species: string;
age: number;
}
let animal: Animal = {species: "Lion", age: 5};
타입 별칭은 인터페이스와 유사하게 작동하지만, 확장이나 구현(extends/implements)이 불가능한 몇 가지 차이점이 있습니다.
객체 리터럴 타입 직접 지정
때때로 객체 리터럴 타입을 직접 변수에 할당하여 타입을 정의할 수도 있습니다.
let user: {name: string; age: number} = {name: "Jane", age: 25};
이 방법은 간단한 객체에 유용하지만, 복잡한 구조의 경우 인터페이스나 타입 별칭을 사용하는 것이 좋습니다.
각각의 방법은 사용하는 컨텍스트에 따라 장단점이 있으므로, 상황에 맞게 적절한 방법을 선택하는 것이 중요합니다.
'typescript' 카테고리의 다른 글
[ 타입스크립트 7 ] tsconfig (0) | 2024.01.12 |
---|---|
[ 타입스크립트 6 ] enum 보충 (0) | 2024.01.11 |
[ 타입스크립트 4 ] 기본정리 (0) | 2024.01.11 |
[ 타입스크립트 3 ] 설치 (0) | 2024.01.11 |
[ 타입스크립트 2 ] 왜 쓰나? (0) | 2024.01.10 |