Ts 1일차

Fizz·2022년 9월 24일
0

기본글이지만 혼자 정리해보려고 한다.

기본타입 정리

JS

Primitive

  • number
  • string
  • boolean
  • bigint(최신기준 숫자타입과 비슷하지만 더 큰 숫자가능)
  • symbol
  • null
  • undefind

참조형

  • Object:
    - function
    - array etc

TS

const num: number = 2 

const num: number = "1" -> error 
  • number(음수도 가능)

  • string

  • boolean

  • null (값이 없다)
    보통 let age: number | null 식으로 씀
    age = null;
    age = 1;

  • undefind (값이 있는지 없는 지 결정되지 않음)
    보통 let age: number | undefined 식으로 씀

function search(): number | undefined {
	return undefined
}
  • unknown (뭐가 담길지 모름)
    let a : unknown = 0;
    a = 'asd';
    notSure = true;
    다됨 재할당도 된다.

  • any (다된다)
    let a : any = 0;
    a = 'hi';

  • void (x, 함수에 쓸 때 생략 가능하다, 변수 타입 되긴하나, undefined만 할당 가능해 보통 안씀)

function printf(): void {
  console.log('a');
  return;
 }
  • never (이 함수 호출시 반환 x 에러 발생시키는 함수 등 절대 리턴되지 않는 경우, 변수에 선언 가능하나 사용x)
function error(msg: string): never {
  //message -> server(log)
  throw new Error(msg) 혹은 while(true){}
}

  • Object (원시타입 제외한 모든 obj타입 가능)

함수 사용 예시

function (num1: number, num2: number): number{
	return num1 + num2;
}
function fetchNum(id: string): Promise<number> {
	return new Promise((resolve, reject) => {
    	resolve(100);
    });
}
  • Optional Parameter
    function a(num1: num, num2?:num) -> ?이 optional parameter 전달해도 되고 전달 안해도 가능하다. 전달안하면 undefind가 됨
    즉 num2: num | undefind 뜻 하지만 후자의 경우로 표시하고 매개변수를 안넘겨주면 오류가뜸 (undefind을 넘겨야 한다.) Optional을 쓰자!

  • Default Parameter
    function a(num1: num = 2) ->디폴트 값

  • Rest Parameter

function a(...numbers: number[]): number {
	return numbers.reduce((a, b) => a + b);
}

10이 return됨
	console.log(a(1,2,3,4)) 

배열과 튜플

배열

const nums: number[] = [1, 2, 3];
const nums: Array< number > = [1,2,3];
둘다가능

차이점 Object의 불변성 보장하게 하는 readonly사용 가능

 function a (nums: readonly number[]) {} 

Array< number > 는 사용할 수 없다.

튜플 (Tuple)

튜플은 여러 타입의 데이터를 담을 수 있다.
고정된 사이즈의 여러가지 타입 있을 때 사용
인터페이스, type alias, class로 많이 대체해 사용

let a: [string, number];
a = ['a', 1]; (첫번쨰가 string이므로)
useState가 Tuple 형태다.
무언가 동적으로 return할때 많이 사용
대체 사용가능 시 대체해 많이 사용

profile
성장하고싶은 개발자

0개의 댓글