[typeScript]

M_yeon·2022년 9월 8일
0

typeScript

목록 보기
3/3
post-thumbnail

타입스크립트는 타입을 지정하는 언어로 타입을 다 지정해놓고 개발을 하게 되면 배포 전 에러를 다 발견할 수 있고 안전하며 요즘은 필수적이다라고 할 수 있다.

  • 자바스크립트 : 초기 개발속도가 빠르지만 추후 유지보수 할때 언제 이슈가 터질지 모르는 지뢰밭
  • 타입스크립트 : 초기 개발속도는 느리지만 추후 서비스가 배포 되었을 때 유지보수도 안정적이다.

기존에는

const aaa = "문자열입니다"
const bbb = 12345
const ccc = true

이렇게 입력이 됐는데 타입스크립트에서는 무조건 타입을 지정해줘야 하므로

const aaa:string = "문자열입니다"
const bbb:number = 12345
const ccc:boolean = true

이렇게 지정을 해줘야한다.


타입 종류

undefined & null = 타입,값 모두 소문자로만 사용할 수 있고 모든 타입의 서브타입으로 해당한다

number타입을 사용할때 --strictNullChecks 옵션으로 undefined & null 을 사용하지 못한다면 곤란할것이다 그래서

위 사진에 적혀 있듯이 union type을 이용해야 한다.

// let MyName: string = null;

let v: void = undefined; //같은 값으로 넣을 수 있다 void는 타입으로만 가능

let union: string | null = null //이 표기법이 union타입, 합집합의 의미

union = "shin"

object타입

출처 입력

const person1 = {name: "shin", age: 28};

const person2 = Object.create({ name: "shin" , age: 28 }) //union타입
const person2 = Object.create({}) //이런값도 가능

const person2 = Object.create(39); //불가

Error가 뜨는것들을 넣을 수 없게할 때 사용하는게 object 타입이다

Array

let list: number[] = [1,2,3]; //이 방식을 더 많이 사용한다.

let list: Array<number> = [1,2,3];  //jsx, tsx에서 충돌이 날 수 있다.
//위와 같이 2가지의 표현방식이 있다.
let list: number[] = [1,2,3,"4"]; //이렇게 배열을 하고자 할때 오류 해결 방법은

let list: ( number | string )[] = [1,2,3,"4"]; //union타입을 사용하면 된다.

Tuple

let x: [string,number];

x = ["hello", 28];

//순서와 양식, 길이가 맞아야한다.

길이가 맞아야한다는것은 현재 x 배열의 갯수는 index번호 기준 0,1 까지 밖에 없으므로 2~ 이상의 위치에 값을 할당할 수 없다

any

어떤것이든 된다라는 타입이지만 의미는 정말로 어떤것이든 들어올수 있는 경우도 있고 아닐수도 있다.

타이핑을 하다보면 귀찮아질수도 있고 어떤 타입인지 잘 모를수도 있지만 무심코 any를 쓰게 되면 전체적인 타입 시스템에 문제가 발생할수도 있습니다.

function returnAny(message): any {

  console.log(message)
}

const any1 = returnAny("리턴은 아무거나")

위처럼 any는 인자중 message가 숫자일지 문자일지 가늠할수 없을때만 쓰이는게 맞다.log형식이기 때문

unknown

any 타입의 불안정함을 조금이나마 해소할 수 있는 대체자

0개의 댓글