- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- TWIL
- 배포
- First Project
- typescript
- LEVEL1
- 코딩테스트
- 아고라스테이츠
- LEVEL 1
- 리팩터링 2판
- Git
- Err-Handling
- Docker
- MariaDB
- 알고리즘
- 에러핸들링
- Refactoring
- sql
- 프로그래머스
- 오늘도 개발자가 안된다고 말했다
- 코어 자바스크립트
- javascript
- react
- 면접을 위한 cs 전공지식 노트
- mongodb
- CSS
- LEVEL 2
- java
- TIL
- TMIL
- CRUD
성장에 목마른 코린이
TypeScript 1. 소개 본문
TypeScript 는 무엇인가? 왜 사용하는가? Javascript와의 차이
타입스크립트는 자바스크립트를 기반으로 만들어진 언어인데,
자바스크립트가 가지고 있는 여러 문제를 해결하고 보완하기 위해 만들어진 언어입니다.
그 뿐만 아니라 더 나은 개발자가 될 수 있게 해주고, 더 나은 개발자 경험을 제공합니다.
타입스크립트는 개발자를 멍청한 실수로부터 보호해주고, 더 생산적인 개발자가 되게 도와줍니다.
Javascript 에서는 배열에 false를 더하는데, 배열이 사라지고 string 값으로 변하는 아이러니한 상황이 벌어집니다.
다른 언어에서는, 말도 안되는 일이지만 자바스크립트는 이런 말도 안되는 상황을 허용합니다.
이상한 예이긴하지만, 자바스크립트가 개발자를 이해해주려고 엄청난 노력을 하고 있다는 걸 보여줍니다.
이번엔 현실적으로 일어날 수있는 예시를 보여줍니다.
입력값이 두 개인데 하나밖에 안보냈는데도 코드가 실행되서 NaN이라는 값을 리턴합니다,
하지만 최악의 에러는 런타임 에러입니다.
드디어 자바스크립트가 에러를 보여줬습니다. hello 함수가 존재하지 않기 때문인데요.
하지만 이건 코드를 실행하기 전에 최소화시킬 수 있는 에러 중 하나입니다.
자바스크립트는 이게 에러가 날 거라는 걸 몰라서 그냥 코드를 실행시켰지만,
이상적으로는 코드가 실행하기 전에, nico 객체에는 hello() 라는 함수가 없다고 알려주는게 가장 좋습니다.
이렇기 때문에 자바스크립트를 사용하면 코드에 어떤 에러가 있는지,
다른 사람이 개발자한테 알려주게 됩니다.
타입스크립트를 사용하면 이런 걱정을 할 필요가 없습니다.
첫번째 예시인, 첫배열+boolean 같은 코드를 작성할 수 없을뿐더러
두번째 예시인, divide함수에도 이 함수에 입력값이 두 개가 필요하다는 걸 알 거고 알려줄 겁니다.
마지막 예시에서도 nico.hello()라는 코드를 엔터를 치기도 전에 VS Code가 런타임 에러가 일어날 거라고 경고합니다.
'TypeScript' 카테고리의 다른 글
TypeScript 6. Classes: abstract class, method, public, private, protected (0) | 2022.07.30 |
---|---|
TypeScript 5. Generic (0) | 2022.07.30 |
TypeScript 4. Call Signature (0) | 2022.07.30 |
TypeScript 3. any, unknown, void, never (0) | 2022.07.30 |
TypeScript 2. 선택적 타입(?), readonly, tuple (0) | 2022.07.30 |