타입스크립트의 타입

Seong·2022년 11월 8일
0

Type_Script

목록 보기
1/7

개요

Java Script : 동적 타이핑 = 변수의 타입 지정없이 값이 자동으로 설정 됨
->타입 안정성 없음

 [1,2,3,4] + false  //'1,2,3,4false' 가됨

Java Script에 타입 안정성을 부여하기 위해 만들어진것이 Type Script

Type Script는 작성된 코드의 타입 안정성을 체크한 뒤 Java Script로 컴파일 함.

간단한 타입체크

let a = 'hello'   //string으로 추론
a = 2  //에러

let b : boolean = false // 명시적 표현

let c : number[]= []; //number의 배열
c.push(1)
//c.push('하이') //에러
const d : any[] = [];   //아무거나
d.push(1)
d.push('하이')

옵셔녈 타입 + 읽기전용

const player: {
  readonly name: string,    //읽기전용 
  age?: number,               // ? = optional 타입 있거나 없거나
} = {
  name: 'name'
}

if(player.age && player.age < 10){
  // player.age가 true일 경우 player.age<10 비교

}

별칭

타입을 명시할때 별칭을 사용할 수 있다.

type Player = { //첫글자는 대문자로
  name: string,
  age?: number, // ? = optional 타입
}

const playerone : Player = {
  name: 'name'
}
const playertwo : Player = {
  name: 'name',
  age:23
}

리턴값 타입 선언

function playerMaker(name:string) : Player {//return값 타입선언
  return {
    name,
  } 
}

함수 : 타입 { }

튜플

const tuple: [string, number, boolean] = ['name', 12, false];

항상 정해진 갯수의 요소를 가져야 하는 array를 지정할 수 있다

unknown

let num : unknown ;
if(typeof num === 'number'){   //unknown 의 type이 number인지 확인
  const total=num + 2;   //확인이 돼야 실행가능
}

변수의 타입을 미리 알지 못할 때 사용

void

function hello() {
  console.log('하이')  //ts가 return이없으면  스스로 void임을 인식함
}

아무것도 return하지 않는 함수를 void로 지정

never

function err():never{
  throw new Error('xxx');  //리턴할일이 없기때문에 never
}

function never(name: string | number) {    //name은 string 또는 number
  if (typeof name == 'string') {
    name += '하이'; //이 안에있는 name은 String이된다
  } else if (typeof name == 'number'){
    name += 2;  // 이 안에 있는 name은 number가 된다
  }else {
    name  //name이 string 아니면 number라고 선언해서 작동될일 없기떄문에 never가 된다
  }
}

함수가 절대 리턴하지 않을때 ex)오류처리
또는 작동될일 없을때.

profile
메모장

0개의 댓글