TypeScript

union type, any, unknown, 함수에 타입 지정하는 법 & void 타입

단점이없어지고싶은개발자 2022. 5. 11. 20:32
반응형

1. Union Types

//1. Union Types
//타입 2개 이상 합친 새로운 타입)
let names: number | string = 123;
let ages: number | string | boolean = true;

names = 'name!';
ages = 30;

//소괄호로 타입을 묶어준다.
let arr: (number | string)[] = [1, 'string', 3];
let obj: { a: string | number } = { a: 123 };

 

2. any Types && Unknown Types

//any 타입
//어떤 타입이 들어와도 에러가 나지 않는다. 모든 자료형을 허용해줌.
//하지만 타입스크립트 쓰는 의미가 없다. 타입실드 해제문법.
let user: any = '123';

//unknown 타입
//모든 자료형 허용해줌, 하지만 any보다 안전하다.
//간단한 수학연산도 타입이 맞아야 한다. 타입 엄격하게 지켜야 한다.

// let users: unknown;
// users - 1; 계산되지 않는다.

// let age: string | number;
// age + 1;

//string타입 + 1 (허용)
//number타입 + 1 (허용)
//number | string타입 + 1 (불허)

let nam: string = 'kim';
let age: undefined | number = undefined;
let married: boolean = false;
let 철수: (string | undefined | number | boolean)[] = [nam, age, married];

let 학교: {
score: (number | boolean)[];
teacher: string;
friend: string | string[];
} = {
score: [100, 97, 84],
teacher: 'Phil',
friend: 'John',
};
학교.score[4] = false;
학교.friend = ['Lee', 학교.teacher];

 

3. 함수에 타입 지정하는 방법과 void 란?

//변수에 지정해준것처럼 인자로 들어올 타입을 지정해주고, 괄호 밖에 return 되는 타입을 지정해준다.
function func(x: number): number {
  return x * 2;
}

func(30);

//void를 입력할 시, return 값이 없을 때 사용한다.
//return 하는 것을 사전에 막아준다.
//또한 함수를 사용할 때 파라미터에 값을 지정해줘야 한다.
//파아미터가 옵션일 경우 파라민터변수 ?:타입
//즉, 변수: number | undefined와 같다.
function findFunc(x: number): void {
  x + x;
}

findFunc(3);
반응형