인프런 김정환 님 견고한 JS 소프트웨어 만들기 강의 노트 입니다. 1. 아리송한 상황들 console.log = 14; console.log() // error.에러가 발생한다. console.log에 14를 할당한 순간부터 함수가 아니기 때문이다. 문제는 이런 에러가 런타임에서 발생한다는 것이다. '1' + 1 = '11' 10 - '11' = -1 '2' * 3 = 6 '1' / 10 = 0.1 '1' % 10 = 1 1 + '2' + 3 * 4 = '1212'위 코드처럼 결과 예측이 어려울 때도 있다. number와 string타입의 숫자를 사칙연산하게 되면, + 연산자일 때는 문자열..
인프런 이재승 님 타입스크립트 시작하기 강의를 듣고 여러 레퍼런스를 참고하여 정리한 노트입니다. 1. 타입 추론 정적 타입 언어의 단점은 타입을 정의하는데 시간과 노력이 많이 들어서 생산성이 줄어들 수도 있다는 것이다. 따라서 타입 추론을 통해 필요한 경우에만 타입정의를 해야 한다. let으로 변수 선언 시 let v1 = 123; let v2 = 'abc'; let v3; v1 = 'a'; // error v2 = 456; // error v3 = 123; v3 = 'abc'; v3 = false;위 코드에는 타입 지정을 전혀 하지 않았다. 하지만 v1의 최초 할당값이 123으로 number이므로 자동으로 number로 타입이 지정되었고 같은 이유로 v2는 s..
인프런 이재승 님 타입스크립트 시작하기 강의를 듣고 여러 레퍼런스를 참고하여 정리한 노트입니다. 1. 제네릭(generic) 제네릭은 타입 정보가 동적으로 결정되는 타입이다. 제네릭을 통해 같은 규칙을 여러 타입에 적용할 수 있다. 타입을 지정할 때 발생할 수 있는 중복 코드를 제거할 때 유용하다. 제네릭이 없을 때 문제점 function makeNumberArray(defaultValue: number, size: number): number[] { const arr: number[] = []; for (let i = 0; i < size; i++) { arr.push(defaultValue); } return arr; } function makeStringArray(defaultValue: strin..
인프런 이재승 님 타입스크립트 강의를 듣고 여러 레퍼런스를 참고하여 정리한 내용입니다. 1. 타입호환성 타입 호환성은 어떤 타입을 다른 타른 타입으로 취급해도 되는지 판단하는 것이다. 정적타입언어의 가장 중요한 역할은 타입호환성을 통해 컴파일 타임에 호환되지 않는 타입을 찾아내는 것이다. 어떤 변수가 다른 변수에 할당 가능하기 위해선 해당 변수의 타입이 다른쪽 변수 타입에 할당될 수 있어야 한다. 타입이 가질 수 있는 값의 집합을 생각해야 한다. function func1(a: number, b: number | string) { const v1: number | string = a; const v2: number = b; // error } function func2(a: 1 | 2) { const v..