TIL 54. TypeScript(기본타입)

isk·2023년 1월 15일
0

TIL

목록 보기
51/122
post-custom-banner

TypeScript의 기본타입

Boolean

true, false로 이루어진 타입.

const bool: boolean = false

Number

TypeScript는 16진수, 10진수 리터럴에 더불어, ECMAScript 2015에 소개된 2진수, 8진수 리터럴도 지원한다.

const decimal: number = 6;
const hex: number = 0xf00d;
const binary: number = 0b1010;
const octal: number = 0o744;

String

let color: string = "blue";
color = 'red';

// color = 0xf00d // 에러

백틱(템플릿 문자열)으로 감싸면 숫자도 넣을 수 있다.

const name: string = 'kim';
const age: number = 20;
const person: string = `he is ${name}, ${age} years old` 

Array

const list: number[] = [1, 2, 3, 4];

또 다른 방법은 제네릭(Generic) 배열 타입 사용.

const list: Array<number> = [1, 2, 3, 4];

Tuple

튜플 타입을 사용하면, 요소의 타입과 개수가 고정된 배열을 표현할 수 있다.
단, 요소들의 타입이 모두 같을 필요는 없다.
예를 들어, number, string 이 쌍으로 있는 값을 나타내고 싶을 수 있다.

// 튜플 타입 선언
let stringNumber: [string, number];
// 초기화
stringNumber = ["hello", 10]; // 성공
// 잘못된 초기화
stringNumber = [10, "hello"]; // 오류
substring[2] = 'js' // 2번 인덱스는 없기 때문에 에러.

Enum

Enum은 기본적으로 0부터 시작하여 번호를 매긴다.

enum name {kim, lee, park}
const k: string = name[1]

console.log(k) // lee

0이 아닌 다른 숫자부터 번호를 매기도록 할 수 있다.

enum name {kim = 1, lee, park}
const n: string = name[3]

console.log(n) // park

모든 값을 직접 설정할 수도 있다.

enum name {kim = 1, lee = 2, park = 5}
const n: string = name[5]

console.log(n) // park

Any

어떤 타입이든 가능. (void와 반대)

let num: any = 1;
num = "is string"; // 가능
num = false; // 가능

Void

어떤 타입도 존재할 수 없음. (any와 반대)

보통 함수에서 반환 값이 없을 때 반환 타입을 표현하기 위해 쓰인다.

const log = (): string => { // 불가능
    console.log("value");	// return이 없으면 void 또는 any 타입이어야한다.
};							// 에러 내용 : 선언 형식이 'void'도 'any'도 아닌 함수는 값을 반환해야 합니다.

const log = (): string => { 		// 불가능
    return console.log("value");	// return이 있어도 return은 타입을 가진 값이 되어야한다.
};									// 에러 내용 : 'void'형식은 'string'형식에 할당할 수 없습니다.

const log = (value : string): string => { // 가능
    return value;
  };

const log = (): string => { // 가능
	return "value";
};

const log = (): void => { // 가능
    console.log("value");
};

const log = (): string 또는 const log = (): void의 string, void부분(함수의 리턴 타입)은 생략이 가능하다.

Null 과 Undefined

둘 다 자신의 타입 이름으로 사용

// 이 밖에 이 변수들에 할당할 수 있는 값은 없다.

let u: undefined = undefined;
let n: null = null;

Object

object는 원시 타입이 아닌 타입을 나타내는데 number, string, boolean, bigint, symbol, null, 또는 undefined 가 아닌 나머지를 의미한다.

function obj(o: object | number): void;

obj({ item: 0 }); // 가능
obj(1); // 가능

obj(null); // 오류
obj("string"); // 오류
obj(false); // 오류
obj(undefined); // 오류
post-custom-banner

1개의 댓글

comment-user-thumbnail
2023년 1월 15일

잘 읽고 갑니다 ^^

답글 달기