기본타입
1) boolean
enum
이나 string
으로 사용한다.boolean
타입은 참(true) 또는 거짓(false) 값이다.2) number
3) string
string
타입은 텍스트 데이터를 나타낸다.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];
const person2: [string, number, boolean] = [25, 'Spartan', false]; // 오류!
6) enum(열거형 데이터 타입)
enum UserRole {
ADMIN = "ADMIN",
EDITOR = "EDITOR",
USER = "USER",
}
enum UserLevel {
NOT_OPERATOR, // 0
OPERATOR // 1
}
enum UserLevel {
NOT_OPERATOR = 1, // 1
OPERATOR // 2
}
readonly
class Person {
readonly name: string;
readonly age: number;
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
}
const person = new Person('JHON', 30);
console.log(person.name); // 출력: 'JHON'
console.log(person.age); // 출력: 30
person.name = 'Jane'; // 에러: 'name'은 readonly 속성이므로 다시 할당할 수 없음
person.age = 25; // 에러: 'age'은 readonly 속성이므로 다시 할당할 수 없음
any, unknown, union
1) any
any
타입은 어떤 타입의 값이든 저장할 수 있다object
타입과 같은 최상위 타입이라고 생각하면 된다.2) unknown
unknown
타입은 any
타입과 비슷한 역할을 하지만 더 안전한 방식으로 동작한다.let unknownValue: unknown = '타입스크립트';
console.log(unknownValue); // 타입스크립트
let stringValue: string;
stringValue = unknownValue; // 에러 발생! unknownValue가 string임이 보장이 안됨
stringValue = unknownValue as string;
console.log(stringValue); // 타입스크립트
4) union
unknown
타입도 결국 재할당이 일어나지 않으면 타입 안전성이 보장이 되지 않는다union
은 여러 타입 중 하나를 가질 수 있는 변수를 선언할 때 사용된다.|
연산자를 사용하여 여러 타입을 결합하여 표현한다.type StringOrNumber = string | number; // 원한다면 | boolean 이런식으로 타입 추가가 가능
function processValue(value: StringOrNumber) {
if (typeof value === 'string') {
// value는 여기서 string 타입으로 간주
console.log('String value:', value);
} else if (typeof value === 'number') {
// value는 여기서 number 타입으로 간주
console.log('Number value:', value);
}
}
processValue('Hello');
processValue(42);