대왕판다
ESTP 하고재비로 살아가기
대왕판다
전체 방문자
오늘
어제
  • 분류 전체보기
    • 일상
      • 먹고재비
      • 생각대로
    • 개발
      • html css
      • 자바
      • 자바스크립트
      • 파이썬
      • 알고리즘
      • 북TIL
      • 네트워크
      • 객체지향개발

블로그 메뉴

  • 홈
  • 태그

공지사항

인기 글

태그

  • 상길북
  • 타입스크립트
  • css
  • 노마드코더
  • 양산
  • html
  • 클론코딩
  • 맛집
  • 브루트포스
  • 알고리즘
  • 마이바티스
  • 코딩
  • 양산맛집
  • 노개북
  • 백준
  • 챌린지
  • 자바스크립트
  • 리액트
  • 자바
  • 파이썬

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
대왕판다

ESTP 하고재비로 살아가기

[타입스크립트]  타입스크립트 기본개념 + 병합연산자
개발/자바스크립트

[타입스크립트] 타입스크립트 기본개념 + 병합연산자

2022. 1. 11. 11:16

 

타입스크립트

자바스크립트의 확장판

 

자바스크립트는 타입시스템이 존재하지 않기에 변수에 여러 타입이 할당가능함

->  변수에 잘못된 타입(값)이 할당 되었을 때, 코드를 실행해야만(=런타임 환경에서만) 에러가 발생했음을 알 수 있음

그러나 타입스크립트는 이러한 자바시스템에 강한 타입시스템을 적용해

코드 작성환경(컴파일 단계 혹은 이전)에서 에러를 확인할 수 있음

const plus = (a, b) => a + b

  자바스크립트

const plus = (a:number, b:number) => a + b

  타입스크립트

 

함수 인자들이 타입화되었음

실제론 저렇게 사용X. 컴포넌트 생성 후 prop 보내주면 된다.

 

-

0. 인터페이스는 변수, 함수, 클래스에 타입 체크를 위해 사용 됨. 자바스크립트 리액트의 propType과 유사

 

1. Optional props =>  prop name 뒤 ?

interface CircleProps {
  bgColor: string;
  borderColor?: string;
  text?: string;
}

 

2. state에서 초기값이 두 가지 타입 모두 가능하게 만드려면

const [counter, setCounter] = useState<number|string>;
setCounter(2)
setCounter("string")
//
모두가능

그러나 보통 state type은 그대로 간다.

 

3.

e: React.FormEvent<HTMLInputElement>

와 같이 요상한 이벤트리스너는 구글링, doc에서 찾는수밖에 없다.

+ ts는 target이 아닌 currentTarget을 사용한다.

 

 

--

?? (Null 병합 연산자: Nullish coalescing operator)

??앞에 값이 null이거나 undefined이면 오른쪽 값을, 그렇지 않으면 왼쪽 값을 반환하는 논리연산자

null ?? "hello" // "hello"
undefined ?? "hello" // "hello"
"hi" ?? "hello" // "hi"

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/Nullish_coalescing_operator

 

Nullish coalescing operator - JavaScript | MDN

널 병합 연산자 (??) 는 왼쪽 피연산자가 null 또는 undefined일 때 오른쪽 피연산자를 반환하고, 그렇지 않으면 왼쪽 피연산자를 반환하는 논리 연산자이다.

developer.mozilla.org

// 병합연산자 이외 JS ES6 구문을 사용해 function ff( { text = "default text" } ) {} 를 사용하는것도 가능.

 

'개발 > 자바스크립트' 카테고리의 다른 글

[리액트] React-hook-form  (0) 2022.01.30
[리액트] Recoil - state management  (0) 2022.01.19
[리액트] - styled component  (0) 2022.01.09
ternary operation, absolute/relative url  (0) 2021.07.28
노마드코더 바닐라JS 챌린지 수료!  (0) 2021.06.23
    '개발/자바스크립트' 카테고리의 다른 글
    • [리액트] React-hook-form
    • [리액트] Recoil - state management
    • [리액트] - styled component
    • ternary operation, absolute/relative url
    대왕판다
    대왕판다
    let's learn and roll!

    티스토리툴바