2024. 6. 24. 21:00ㆍTypeScript
Typescript 사용 시 장단점
1. 시간이 오래 걸릴 수 있음
• 동적(런타임) 자바스크립트와 달리, Typescript는 정적(컴파일) 언어이므로 컴파일 시간이 추가됩니다.
2. 가독성 향상
• 변수와 인자에 타입을 명시함으로써 코드의 가독성이 높아집니다.
3. 테스트 코드 감소
• 안정성이 높아 자바스크립트에 비해 테스트 코드 작성이 줄어듭니다.
4. 디버깅의 어려움
• 디버깅의 어려움: 개발자의 실수로 인한 오류를 찾기 어렵습니다.
컴파일이란?
• 컴파일은 코드를 실행하기 전에 컴파일러가 문법적으로 오류를 잡아내는 과정입니다. 코드 최적화와 사전 오류 방지를 도와줍니다.
기본 타입
1. boolean
• 참/거짓을 표현.
function isValidPassword(password: string): boolean {
return password.length >= 8;
}
2. number
• 숫자 타입.
function calculateArea(radius: number): number {
return Math.PI * radius * radius;
}
3. string
• 문자열 타입.
function greet(name: string): string {
return `안녕, ${name}!`;
}
4. 배열
• 같은 타입의 요소를 가진 배열.
function calculateSum(numbers: number[]): number {
let sum: number = 0;
for (let i = 0; i < numbers.length; i++) {
sum += numbers[i];
}
return sum;
}
5. 튜플(tuple)
• 서로 다른 타입의 요소를 순서대로 가지는 배열.
const person: [string, number, boolean] = ['Spartan', 25, false];
6. enum
• 관련된 상수 값을 그룹화.
enum UserRole {
ADMIN = "ADMIN",
EDITOR = "EDITOR",
USER = "USER",
}
7. let과 const
• let: 재할당 가능한 변수.
• const: 재할당 불가능한 상수.
• readonly: 객체 속성을 불변으로 만듦.
class Person {
readonly name: string;
readonly age: number;
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
}
8. any
• 모든 타입의 슈퍼 타입.
let anything: any;
anything = 5;
anything = 'Hello';
9. unknown
• 안전한 방식으로 동작하는 any 타입.
• 다른 타입으로 할당하려면 명시적 타입 확인 필요.
10. union
• 여러 타입 중 하나를 가질 수 있는 변수.
type StringOrNumber = string | number;
11. object literal
• 키 + 값의 쌍으로 구성된 객체.
const obj = {
a: [1, 2, 3],
b: 'b',
c: 4
}
유틸리티 타입
1. Partial
• 타입 T의 모든 속성을 선택적으로 만듦.
interface Person {
name: string;
age: number;
}
const updatePerson = (person: Person, fields: Partial<Person>): Person => {
return { ...person, ...fields };
};
2. Required
• 타입 T의 모든 속성을 필수로 만듦.
interface Person {
name: string;
age: number;
address?: string;
}
3. Readonly
• 타입 T의 모든 속성을 읽기 전용으로 만듦.
interface DatabaseConfig {
host: string;
readonly port: number;
}
const mutableConfig: DatabaseConfig = {
host: "localhost",
port: 3306,
};
'TypeScript' 카테고리의 다른 글
[TypeScript] TypeError: Unknown file extension ".ts" (0) | 2024.06.25 |
---|---|
TypeScript 설정 (0) | 2023.10.30 |
TypeScript 프로젝트 초기세팅 (0) | 2023.10.27 |
TypeScript 데이터타입 (0) | 2023.10.27 |