TIR: 타입스크립트 프로그래밍 (1) 타입스크립트 개요 - 220729

Lumpen·2022년 7월 30일
0

TIR

목록 보기
23/40

책의 코드 스타일

  • 세미콜론은 필요할 때만
  • 들여쓰기는 공백 4개..
  • 중요하지 않은 변수에 간결한 변수명 사용 - a, f, _ 등
  • 자바스크립트 최신 문법 사용
  • 가능하면 스프레드 연산자 사용
  • 모든 것에 type을 붙이고, 가능하면 구체적 타입으로 추론
  • 재사용할 수 있는 범용 코드를 만들려고 노력한다 - 다형성

이런 것들을 지킴으로 더 좋은 코드를 작성할 수 있다

Typescript 개요

타입스크립트의 내장 컴파일러는
읽기 전용 타입, 강력한 추론, 완벽에 가까운 다형성, 좋은 코딩 타입을 촉진하는 완벽한 구조 기반 타입화를 지원함과 동시에 자바스크립트의 호환을 유지하면서도 놀라운 표현력을 제공한다

자바스크립트에는 포인터나 참조가 없다
값과 참조 타입을 사용한다 (값은 원시 값을 이야기 하는듯)

  • 원시 타입에는 문자열, 숫자, boolean, symbol, null, undefined 6가지가 있음

값은 불변이다

이 책에서는 값과 참조에 대해 구분 없이 값이라는 용어를 사용한다

타입스크립트는 웹 앱, 모바일 앱, node.js, 사물인터넷 등을
뒷받침할 언어다
실수를 방지하고, 자신과 미래의 개발자들에게 문서화를 제공,
리팩토링을 쉽게 만들며, 단위 테스트의 숫자를 반으로 줄임으로 더 안전한 프로그램을 구현할 수 있게 보장한다
생산성을 배로 늘려주는 타입 스크립트

안정성

타입스크립트가 안전하다는 것은 타입에 대한 안정성을 뜻한다

  • 타입 안정성: 정적 타입을 이용해 프로그램이 유요하지 않은 작업을 수행하지 않도록 방지하는 것

유효하지 않은 동작의 예

  • 숫자와 리스트 곱하기
  • 객체 리스트를 인수로 받는 함수에 문자열 인수를 전달
  • 객체에 존재하지 않는 멤버를 호출
  • 다른 곳으로 이동된 모듈 임포트

일부 언어는 이런 실수가 있는 코드를 최대한 실행하려 한다
개발자가 원하는 것은 무엇이든 할 수 있다고 믿기 때문이다

자바스크립트 예시

3 + [] // 문자열 "3" 으로 평가

let obj;
obj.foo // undefined 로 평가

function a(b) {
	return b/2 
}
a("z") // NaN 으로 평가

명백하게 잘못된 동작을 자바스크립트는 최대한 결과를 도출한다

만약 자바스크립트가 실수를 바로잡으려고 노력하는 것으로 에러를 발생시킨다면 실수를 저지른 시점과 실수를 인지하는 시점이 달라진다
실수를 저지를 개발자가 아닌 다른 사람이 발견해 알려주는 경우가 발생

자바스크립트는 프로그램이 실행할 때가 되어서야 실수를 알려준다

이러한 부분을 해결하기 위해 타입스크립트가 등장했다
에러를 알려준다는 사실 보다 더 중요한 것은 에러를 알려주는 시점이다
타입스크립트는 개발자가 편집기에 코드를 작성하는 순간 에러를 발생시킨다

3 + [] // 에러 TS2365: '3' 타입과 'never[]' 타입에
		// 연산자 '+'를 적용할 수 없음

모든 타입 관련 버그가 사라질뿐 아니라 코드를 작성하는 방식도 달라진다
개발자는 프로그램 구상 시 타입 수준으로 먼저 생각하고 값 수준으로 생각하게 될 것이다
프로그램을 설계하면서 미리 극단적인 상황을 고려하고, 가독성과 유지보수성이 좋은 코드를 작성하게 된다

profile
떠돌이 생활을 하는. 실업자는 아니지만, 부랑 생활을 하는

0개의 댓글