옝옹
냠
옝옹
전체 방문자
오늘
어제
  • 분류 전체보기 (84)
    • [LG유플러스]유레카 SW (5)
    • React (20)
    • JS (17)
    • TypeScript (5)
    • CSS & HTML (1)
    • 알고리즘 (11)
    • JAVA (20)
    • GIT (1)
    • 자격증 (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • While문
  • java.lang패키지
  • toFixed
  • break문
  • indexOf()
  • useRef
  • 템플릿리터럴
  • java.util패키지
  • 접근제한자
  • switch문
  • 혼자 공부하는 자바
  • 자바
  • 백준
  • useMemo
  • 인스턴스멤버
  • 타입변환
  • TypeScript
  • 함수선언
  • 정적멤버
  • 혼자공부하는자바
  • template literal
  • 리액트를다루는기술
  • join() 메서드
  • do-while문
  • 코드스플리팅
  • 자바스트립트
  • Node.js
  • map
  • useState
  • useEffect
  • match()
  • 노마드코더
  • js
  • 자바스크립트
  • java
  • 변수선언
  • map() 함수
  • JavaScript
  • reduce
  • reverse() 메서드
  • 기본api클래스
  • continue문
  • ==
  • 리액트
  • fillter
  • 타입스크립트
  • join()
  • 화살표함수
  • useCallback
  • sort() 메서드

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
옝옹

냠

[TS] Typescript #day1
TypeScript

[TS] Typescript #day1

2024. 12. 16. 22:26

# Why not JavaScript

"안정성, 더 정확히 말해서 타입 안정성"

  • 코드에 버그가 줄어듦
  • 런타임 에러가 줄어든다
  • 개발 생산성 향상

 

하지만 자바스크립트는?

* 문제점 1 * 에러를 보여주지 않으려고 많은 노력을 함.

[EX1]

[1,2,3,4] + false

// '1,2,3,4false'

 

배열도 아닌, boolean도 아닌 string이 콘솔에 찍힌다. 이는 굉장히 이상하다고 볼 수 있는 자바스크립트는 이를 허용함

 

[EX2]

function divide(a,b) {
	return a/b
}

divide("xxxxx")

// NaN

코드를 실행하고 NaN을 return함. 숫자형도 아니며, argument가 1개만 들어갔음에도 에러가 없고 예외 처리도 없음

 

* 문제점 2 * 최악의 에러는 런타임 에러

런타임 에러 : 콘솔 안에서 일어나는 에러

ㄴ 유저의 컴퓨터에서 이미 컴파일이 완료되어 코드가 실행될 때 일어나는 에러

[EX3]

const yeeun = {name : "yeeun")
yeeun.hello()
  • 이상적으로 코드가 실행되기 전에 hello() 함수가 없다는걸 알려주는게 가장 좋음
  • 하지만 javascript는 유저의 컴퓨터에서 이 코드를 실행해야만 비로소 에러를 보여줌
  • 좋은 프로그래밍 언어는 hello()가 없다는걸 알고 시작조차 컴파일조차 안됨

 

# How Typescript Works

타입스크립트(Typescript) : 강타입 프로그래밍 언어

강타입 언어 : 프로그래밍 언어에서 Integer(정수), String(문자열)과 같이 데이터의 타입을 미리 지정하는 언어

 

타입스크립트의 경우에는 작성한 코드가 자바스크립트로 컴파일 된다. 보통 컴파일은 0과 1로 이뤄진 컴퓨터가 알아들을 수 있는 언어로 바꿔주는 과정을 거치지만, 타입스크립트는 자바스크립트로 바꿔진다는 뜻이다.

ㄴ TS가 제공하는 보호장치는 JS로 변환되기 전에 작동된다. 즉, typescript에 에러가 있다면 javascript로 컴파일 되지 않기 때문에 변환된 javascript 안에서 실수가 일어나지 않게 한다.

 TS는 바로 에러를 표시해줌. -> Property 'hello' does not exist on type '{ nickname: string; }'.(2339)

Operator '+' cannot be applied to types 'number[]' and 'boolean'.(2365)

 

 

# Implicit Types vs Explict Types

1. 타입 추론

let a = "hello"
const player = {
  name : "yeeun"
}

2. 명시적 표현

ㄴ 명시적 표현은 최소한으로 사용하는게 좋음

let b : boolean = true
let c : number[] = []

 

 

* 해당 게시물은 노마드코더 강의를 참고하여 쓰여졌습니다. *

저작자표시 비영리 변경금지 (새창열림)

'TypeScript' 카테고리의 다른 글

[TS] Typescript #day3  (2) 2024.12.18
[TS] Typescript #day2  (2) 2024.12.18
[TypeScript] 타입스크립트란?  (2) 2024.02.26
[Error] addCase cannot be called with two reducers for the same action type  (3) 2023.11.23
    'TypeScript' 카테고리의 다른 글
    • [TS] Typescript #day3
    • [TS] Typescript #day2
    • [TypeScript] 타입스크립트란?
    • [Error] addCase cannot be called with two reducers for the same action type
    옝옹
    옝옹

    티스토리툴바