일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- CSS
- 리액트기초
- 프론트앤드개발
- typescript
- useMemo
- 리액트
- javascript 수학
- useCallback
- 채팅개발
- 타입스크립트
- 리터럴타입
- Union Type
- javascript
- 개발일기
- next.js
- react기초
- prompth
- 프론트앤드 개발자
- react
- 프론트앤드개발자
- 유니온타입
- 자바스크립트
- 타입스크립트 기초
- 인터섹션타입
- 프론트앤드 사이드프로젝트
- intersection type
- frontend
- 프론트앤드
- html
- 프론트앤드 기초
- Today
- Total
404 page not found : 기록장
[Typescript] Typescript의 기본 Type 본문
Typescript의 기본 Type
Typescript는 Javascript의 Superset으로서, Javascript의 모든 기능을 포함하고 있습니다. 뿐만 아니라, 정적 타입 체크를 지원하는 등 타입 시스템이 강화되어 있습니다. 이번 포스트에서는 Typescript에서 제공하는 기본 타입에 대해 알아보겠습니다.
Boolean
Boolean은 참(true) 또는 거짓(false)을 나타내는 타입입니다. 다음과 같이 선언할 수 있습니다.
let isDone: boolean = false;
Number
Number는 숫자를 나타내는 타입입니다. Javascript와 마찬가지로 모든 숫자를 포함하고 있으며, 16진수 및 10진수 리터럴과 함께 사용할 수 있습니다.
let decimal: number = 6;
let hex: number = 0xf00d;
let binary: number = 0b1010;
let octal: number = 0o744;
String
String은 문자열을 나타내는 타입입니다. 작은따옴표(')나 큰따옴표(")로 묶어서 사용할 수 있습니다.
let name: string = "Typescript";
let sentence: string = `Hello, my name is ${name}.`;
Array
Array는 배열을 나타내는 타입입니다. 다음과 같이 두 가지 방법으로 선언할 수 있습니다.
let list: number[] = [1, 2, 3];
let anotherList: Array<string> = ["Typescript", "Javascript", "Python"];
Tuple
Tuple은 고정된 개수의 요소를 가진 배열을 표현하는 타입입니다. 요소의 타입이 각각 지정되어 있습니다.
let x: [string, number];
x = ["Typescript", 10]; // OK
x = [10, "Typescript"]; // Error
Enum
Enum은 숫자나 문자열 값 집합에 이름을 부여하는 타입입니다.
enum Color {
Red,
Green,
Blue,
}
let c: Color = Color.Green;
console.log(c); // 1
Any
Any는 타입 검사를 하지 않는 타입입니다. 가능한 사용을 지양해야 합니다.
let notSure: any = 4;
notSure = "maybe a string instead";
notSure = false; // OK
Void
Void는 어떤 타입도 존재하지 않음을 나타내는 타입입니다. 반환 값이 없는 함수의 반환 타입으로 사용됩니다.
function warnUser(): void {
console.log("This is a warning message.");
}
Null and Undefined
Null과 Undefined는 각각 null과 undefined 값만 가질 수 있는 타입입니다.
let u: undefined = undefined;
let n: null = null;
Typescript에서는 --strictNullChecks 옵션을 사용하여 Null과 Undefined를 엄격하게 체크할 수 있습니다.
Never
Never는 절대 발생하지 않는 값을 나타내는 타입입니다. 예를 들어, 항상 예외를 던지거나 무한 루프를 도는 함수의 반환 타입으로 사용됩니다.
function error(message: string): never {
throw new Error(message);
}
function infiniteLoop(): never {
while (true) {}
}
Object
Object는 객체를 나타내는 타입입니다. 객체는 key-value 쌍으로 이루어진 데이터 구조입니다. 다음과 같이 선언할 수 있습니다.
let obj: object = {
name: "Typescript",
version: 4.3,
};
하지만, Object 타입은 key-value 쌍의 구체적인 타입을 명시하지 않으므로, 객체의 프로퍼티에 접근하거나 객체를 다른 곳에 전달할 때 타입 정보가 유실될 수 있습니다. 따라서, 가능한한 구체적인 타입을 사용하는 것이 좋습니다.
Type Assertion
Type Assertion은 타입을 강제로 지정하는 것입니다. 다음과 같이 사용할 수 있습니다.
let someValue: any = "Typescript";
let strLength: number = (<string>someValue).length;
또는 다음과 같이 사용할 수도 있습니다.
let someValue: any = "Typescript";
let strLength: number = (someValue as string).length;
Type Assertion은 가능한 사용을 지양해야 합니다. 타입 검사를 우회하는 것이기 때문에, 잘못 사용하면 오류가 발생할 수 있습니다.
이상으로, Typescript에서 제공하는 기본 타입과 몇 가지 고급 타입에 대해 살펴보았습니다. 타입 시스템을 적절하게 활용하여 코드의 가독성과 안정성을 높이는 것이 중요합니다.
'TYPESCRIPT' 카테고리의 다른 글
[Typescript] Any와 Unknown (0) | 2023.03.03 |
---|---|
[Typescript] Generic (0) | 2023.03.03 |
[Typescript] Union Type, Intersection Type (0) | 2023.03.03 |
[Typescript] type vs interface 차이 (0) | 2023.03.03 |
[Typescript] Typescript를 사용하는 이유 (0) | 2023.03.02 |