Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 프론트엔드개발자
- 개발블로그
- JS
- 개인프로젝트
- 국비지원취업
- 프로그래머스 JS 코테
- 미니 프로젝트
- 자바스크립트 코딩테스트
- Java
- 국비지원
- 코딩테스트
- 영상처리
- 프론트엔드
- 프로그래머스
- 패캠부트캠프
- 부트캠프
- 깃
- 패스트캠퍼스부트캠프
- 딥러닝
- 패캠
- 깃허브
- 프로그래머스코테
- 패스트캠퍼스
- js코테
- 개발 프로젝트
- pokeapi
- 프론트엔드부트캠프
- 프로젝트
- FE
- 자바스크립트
Archives
- Today
- Total
가쟤의 해변일기 🐳
TypeScript | 암시적 유형 vs 명시적 유형 본문
Typescript가 존재하는 이유
: 타입 안정성 때문
-> 코드에 버그가 줄고 런타임 에러가 줄고 생산성도 늘어난다.
⭐ Javascript
└ 매우 유연해서 에러를 잘 보여주지 않는다.
실행 시 에러 발생
→ 실행 전에 에러 감지 불가
⭐ Typescript
└ 타입 안정성 → 버그 감소
⭐ 타입스크립트 코드 테스트
https://www.typescriptlang.org/play
⭐ 타입스크립트 핸드북
https://typescript-kr.github.io/pages/basic-types.html
⭐ Typescript
└ Strongly typed programming
└ 컴파일 시 javascript로 변환됨
└ 에러가 발생 → 컴파일 X
TypeScript가 타입을 추론하는 것(암시적 타입)과 타입을 직접 명시하는 것(명시적 타입)의 차이
TypeScript의 타입 추론은 코드 작성 시 발생하는 중복성과 번거로움을 줄여주는 장점을 가지고 있다.
타입을 명시적으로 선언하는 것도 중요하지만, 다음과 같은 이유로 타입 추론이 더 선호되는 경우가 있다.
- 간결성과 가독성: 타입을 명시적으로 선언하면 코드가 길어지고 더 복잡해질 수 있다. TypeScript는 타입을 추론함으로써 변수나 함수의 타입을 자동으로 유추해주기 때문에 코드가 더 간결해지고 가독성이 높아진다.
- 변경 관리 용이성: 코드의 변경이 필요할 때, 타입을 명시적으로 선언했을 경우 모든 타입 선언을 수정해야 할 수 있다. 하지만 타입 추론을 활용하면 변수나 함수의 타입이 자동으로 조정되므로 변경에 따른 유지보수가 더 쉬워진다.
- 유연성: 타입 추론을 사용하면 변수나 함수의 타입을 바꿔가며 테스트하거나 실험해보는 과정이 더 유연해진다.
- 타입 변경에 따른 자동 업데이트: TypeScript는 타입 추론을 활용하여 변수나 함수의 타입을 자동으로 갱신해준다. 예를 들어 변수의 초기값이 변경되면 해당 변수의 타입도 자동으로 바뀐다.
- 신뢰성과 타입 검증: 타입 추론은 TypeScript 컴파일러가 코드를 분석하고 타입을 체크할 때 도움을 준다. 이를 통해 코드 내에서 잘못된 타입 사용으로 인한 오류를 사전에 방지할 수 있다.
모든 상황에서 타입 추론을 사용하는 것이 항상 좋은 것은 아니다.
때로는 명시적인 타입 선언이 필요한 경우도 있다.
특히 다른 사람이 코드를 이해하거나 협업하는 상황에서는 명시적인 타입 선언이 가독성을 높일 수 있다.
따라서 코드의 복잡성과 유지보수 요건을 고려하여 적절히 타입 추론과 명시적 타입 선언을 혼합하여 사용하는 것이 좋다.
728x90
'Front-end' 카테고리의 다른 글
[React Hooks] useState | useInput, useTabs (1) | 2023.10.14 |
---|---|
타입스크립트 | 함수 호출 시그니처 과제 (0) | 2023.08.31 |
[Javascript] 표준 내장 객체 - String, Number, Math, Date, 배열, 객체, JSON (0) | 2023.07.20 |
[React] 리액트란? (0) | 2023.07.20 |
[Javascript] 클래스 - getter/setter, 정적 메소드, 상속 (0) | 2023.07.20 |