2023. 3. 23

Junghan Lee·2023년 3월 23일
0

TIL Diary

목록 보기
23/52

Index

타입스크립트
타입스크립트를 사용하는 이유, 사용 방법
타입스크립트 파일 확장자&실습
-타입 추론
-타입스크립트 배열, 객체 실습
엄격한 타입스크립트 strict
-타입으로 뭘 받는지 잘 모를 때
API응답 데이터의 타입은 어떻게 할까?
graphql-codegen
graphql에 codegen 적용하기
mutation, query에 타입스크립트 적용해보기


타입스크립트

자바스크립트의 타입을 강제시키는 언어; 필수! 안정성을 위해 생김
지뢰밭을 만들고 있다?
자바스크립트와의 차이점

기존의 자바스크립트(재할당 가능)

타입스크립트: 변수의 자료형 지정(위처럼 재할당 불가)

타입스크립트 사용 이유 & 사용법

자바스크립트는 타입이 엄격하지 않아서 변수나 상수를 만들면 처음에 문자를 넣었다 나중에 숫자를 넣는 등 자유롭게 변환이 가능. 개발에 편리해 보이나 여러 명이 큰 서비스를 갭라하는 경우에는 문제가 될 수 있다.
if(count === 5){//더이상 등록 불가} else {상품 등록} 이런식의 코딩

타입스크립트는 숫자변수에는 숫자만, 문자엔 문자만 넣어 안정성 향상

타입스크립트 사용법

let aaa : string = "안녕하세요"
let bbb : number = 123
let ccc : boolean = true
// 변수명 뒤에 타입 지정

객체 타입을 만들어줄 때 -> 네이밍 관례
interface의 I와 변수명 합치는 것.
ex. 객체를 담은 변수 이름이 profile 이면 타입은 IProfile

타입스크립트 설치

yarn add typescript --dev
비어있는 tsconfig.json 파일 만들기 최상위 폴더에
yarn add @types/react @types/node --dev
yarn dev 해서 tsconfig.json에 자동으로 채우기
strict : true
하나의 언어 -> 다른 언어 : 컴파일, 동일한 언어-> 동일한 언어: 트랜스파일
타입스크립트가 자바스크립트로 변경되어야 브라우저에서 보여줌.

타입스크립트 파일 확장자 & 실습

타입스크립트 사용하는 파일중 return 을 포함하고 있다면 확장자 ts 로 두면 오류 발생하는데 이건 return 부분이 사실 html이 아니라 JSX(자바스크립트 XML) 이기 때문에 발생. 따라서 단순히 javascript만 있는 .js 파일은 typescript의 .ts로 변경하고, javascript에서 JSX(React의 HTML)를 return 하는 컴포넌트들은 typescript의 .tsx로 변경 / js, jsx는 발전해서 jsx도 js라고 해도 되지만 ts, tsx는 각각 똑바로 적용해줘야 함

  1. JSX를 return 하는 컴포넌트 : tsx
  2. javascript만 사용하는 컴포넌트 : ts

타입 추론
파일의 확장자를 ts나 tsx로 변경하면서 기존의 자바스크립트 작성 부분이 타입스크립트 영역으로 바뀌게 되고 변수에 타입을 먼저 입히지 않고 할당을 하게 되면 타입스크립트는 할당된 값의 자료형을 타입으로 추론하게 됨

타입스크립트 배열, 객체 실습

타입스크립트에서의 또는 ,그리고

props타입 지정은 어떻게 할까?
props도 객체이므로 객체에 타입 지정해주는 것과 같이 할 것

엄격한 타입스크립트 strict

strict를 true로 두게 되면 props 쪽에서 빨간 줄이 그이게 된다.
interface로 props의 타입을 지정해주어야 함.
props에서는 주는 입장, 받는 입장이 있다. 타입스크립트는 받는 입장에서 타입 지정해야 함

타입으로 뭘 받아오는지 잘 모를 경우
외부와 통신해 받아오는 api같은 데이터는 뭘 받아오는지 잘 모를 수 있다. 그럴때는 일단 타입에 any 주면 됨. any: 모든 타입
any지정해주는 것은 임시 지정, 이후에는 하나하나 지정하고 넘어가야 함

💡이벤트핸들러 함수의 파라미터(event)타입 지정

💡타입스크립트는 항상 받는 쪽이 중심, 보내주는 쪽에서는 받겠다고 한 타입 그대로 보내줘야 함

API응답 데이터의 타입

rest-api는 타입스크립트 적용시 손으로 만들어 주어야 하는 부분이 많은 반면
graphql의 경우, graphql-codegen 이용해 명령어 하나로 만들어 줌

graphql codegen

mutation에 적용
variables로 뭘 보내주고 응답으로 뭘 받을지 잘 몰라서 data 받아올 때 any. codegen 사용하면서 graphql타입 모두 다운받아 와서 맞는 것 뽑아 적어주면 됨

query에 적용

오류 대처

profile
Strive for greatness

0개의 댓글