기본타임 훑어보기
BOOLEAN
불린은 참 OR 거짓이다. (TRUE OR FALSE)
조건문, 비교, 연산 등에서 주로 사용된다.
function isValidPassword(password: string): boolean {
return password.length >= 8;
}
//너 패스워드 유효한거 맞아? // 8보다 크거나 같으면 TRUE 아니면 FALSE
const password = "q1w2e3r4!";
const valid = isValidPassword(password);
if (valid) {
console.log("유효한 패스워드입니다!");
} else {
console.log("유효하지 않은 패스워드입니다!");
}
NUMBER
넘버 타입 = TS사용하는 모든 숫자
정수, 실수, 진수까지 표현이 가능
모든 수지 연산에 사용되는 숫자는 NUMBER로 명시하면된다.
function calculateArea(radius: number): number {
return Math.PI * radius * radius;
}
//원지름을 구하는 방식
const radius = 5;
const area = calculateArea(radius);
console.log(`반지름이 ${radius}인 원의 넓이: ${area}`);
이런식으로 반지름만 제시해주고 PI값을 넘버에 할당하면 에러없이 작동한다.
STRING
텍스트를 담당하는 타임
백쿼트,ES6부터 생긴 템플릿 리터럴을 사용할 때 백쿼트를 쓴다.
텍스트에 필요한 연산은 모두 STRING 타입으로 할 수 있다.
function greet(name: string): string {
return `안녕, ${name}!`; // 저게 백쿼트, 이안에 많은 정보를 담아 문자열로 표현한다.
}
//반갑다는 함수
const name = "Spartan";
const greeting = greet(name);
console.log(greeting);
그냥 STRING으로 해주면 된다.
배열이란 기본타입에 []가 붙은 타입
쉽게 LIST이다.
EX)
function calculateSum(numbers: number[]): number {
let sum: number = 0;
for (let i = 0; i < numbers.length; i++) {
sum += numbers[i];
}
return sum;
}
const testScores: number[] = [90, 85, 78, 92, 88]; //배열의 총합을 더한다.
const sumScore = calculateSum(testScores);
console.log(`점수의 총합: ${sumScore}`);
튜플
내가 허용할 타입을 정의하면 그안에서 그 타입을 사용할 수 있다.
const person: [string, number, boolean] = ['Spartan', 25, false];
const person2: [string, number, boolean] = [25, 'Spartan', false]; // 오류
위 두번째 사례를 보면 넘버와 스트링의 순서가 바뀌니 오류가 나타난다.
ENUN
열거형 데이터타입
다양한 상수를 이해 쉽게 문자열로 접근하여 사용하는 타임
이넘 안에는 넘버 스트링만가능
enum UserRole {
ADMIN = "ADMIN",
EDITOR = "EDITOR",
USER = "USER",
}
enum UserLevel {
NOT_OPERATOR, // 0
OPERATOR // 1
}
function checkPermission(userRole: UserRole, userLevel: UserLevel): void {
if (userLevel === UserLevel.NOT_OPERATOR) {
console.log('당신은 일반 사용자 레벨이에요');
} else {
console.log('당신은 운영자 레벨이군요');
}
if (userRole === UserRole.ADMIN) {
console.log("당신은 어드민이군요");
} else if (userRole === UserRole.EDITOR) {
console.log("당신은 에디터에요");
} else {
console.log("당신은 사용자군요");
}
}
const userRole: UserRole = UserRole.EDITOR;
const userLevel: UserLevel = UserLevel.NOT_OPERATOR;
checkPermission(userRole, userLevel);