티스토리 뷰
강의는 노마드코더의 'Typescript로 블록체인 만들기' 이며 강의 내용을 요약하는 방식으로 작성한다.
#2.0 How Typescript Works?
[자바스크립트의 문제점]
1. "[] + true" 라는 말도 안 되는 코드를 작성해도 실행됨.
2. 자바스크립트는 함수를 실행할 때 올바른 argument를 사용하도록 강제하지 않음.
예를 들어 argument는 두 개인데, 하나만 보내도 JS에서는 문제없이 실행됨.
3. 객체 안에 존재하지 않는 함수를 호출할 수도 있음.
=> 런타임 에러를 사용자(user)가 보게 됨.
따라서 코드를 실행하기 전에 이러한 에러를 잡아내기 위해 TS를 사용함.
[Typescript란?]
TS로 작성한 코드는 JS로 변환된다.
마치 C, Java 등으로 작성한 코드를 컴파일 과정을 거쳐 어셈블리어로 변환해주는 것처럼 말이다.
https://www.typescriptlang.org/play
위의 링크에서 TS로 작성한 코드가 JS로 어떻게 변환되는지 확인할 수 있다.
이때 변환하는 이유는 브라우저가 TS가 아닌 JS를 이해하기 때문이다.
Node.js는 TS와 JS 모두 이해할 수 있다.
TS는 개발자가 실수를 저지르지 않도록 보호해주는 역할을 한다.
TS가 제공하는 보호장치는 TS 코드가 JS로 변환되기 전에 발생한다.
즉, TS는 코드를 먼저 확인한 후에 변환된 JS 안에서 실수가 일어나지 않도록 확인해주는 것이다.
만약 에러가 발생할 코드가 있다면 JS로 컴파일 자체가 안 되는 것이다.
zpqmdh 라는 객체에 hello가 존재하지 않기 때문에 에러가 있다고 알려준다. 만약 JS 였다면 그냥 실행되었을 것이다.
위의 코드에서는 두 가지 보호 장치가 있다.
1. 데이터 타입: argument인 a와 b가 숫자여야만 한다는 것을 TS에게 알려줄 수 있다.
2. 입력값의 개수: 함수 divide 가 필요로 하는 argument가 두 개라는 것을 알고 있기 때문에 잘못된 argument 개수로 함수를 호출하면 에러가 발생한다.
#2.1 Implicit Types vs Explicit Types
[Typescript의 type system]
1. Implicit Types: JS처럼 변수만 생성하고 넘어가기
TS가 타입을 추론해준다는 것이 JS와의 차이점이다.
변수 a의 타입을 string으로 추론한다. a를 다른 string으로 바꾸는 것은 가능하지만 a를 다른 데이터 타입으로 바꾸려고 하면 에러가 뜬다.
2. Explicit Types: 데이터와 변수의 타입을 명시적으로 정의하기
C, Java 와 같은 다른 프로그래밍 언어처럼 타입을 지정해줄수도 있다.
boolean type으로 지정한 변수 b에 string type인 x를 저장하려고 하면 에러가 뜬다.
- Total
- Today
- Yesterday
- 1764
- 자료구조
- dp
- 1715
- heapq
- 10816
- 백트래킹
- 삼성청년소프트웨어아카데미
- 싸피
- 수학
- 1182
- 백준
- 러스트
- 브루트포스
- 빌림
- 1358
- 10815
- 11051
- 파이썬
- 프로그래머스
- 덱
- 10845
- 조합
- 17478
- 스택
- 10971
- 딕셔너리
- 1759
- 2805
- 큐
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |