https://typescript-kr.github.io/
일반적으로 객체 타입에 사용함.(확장이 더 쉬움.)
JS에서 함수는 함수 외부 변수를 참조할 수 있음. 이걸 '변수를 capture한다'고 표현파라미터에 타입 지정함수 반환 타입 지정(단, TS는 반환문을 보고 반환 타입 파악하므로 반환 타입 생략 가능)캡처된 변수는 타입에 반영되지 않음.함수의 매개변수와 반환값에 타입
리터럴 타입: 변수나 상수가 정확히 하나의 값을 가질 수 있음을 나타내는 타입리터럴 타입은 그 값 자체가 타입이다.집합 타입보다 구체적인 하위 타입다음 두 가지 리터럴이 있음문자열숫자리터럴을 사용하면 문자열이나 숫자에 정확한 값을 지정할 수 있음.
여러 타입 중에 하나가 될 수 있는 값유니언에 있는 모든 타입에 공통인 멤머들에만 접근 가능
원래 JS는 재사용 컴포넌트를 위해 함수와 프로토타입 기반 상속을 사용ES6에서 클래스 문법이 적용됨extends 키워드로 상속 구현자식 클래스를 subclasses, 부모 클래스를 superclasses라고 함.파생 클래스에서 생성자 함수는 기초 클래스의 생성자를 실
열거형: 이름 있는 상수들의 집합 정의TS는 숫자, 문자열 기반 열거형 제공초기화된 숫자를 지정하지 않으면 자동으로 0부터 부여
단일 타입이 아닌 다양한 타입에서 작동하는 컴포넌트 작성제네릭은 타입을 캡처한다. 즉, 제네릭 = 타입 변수제네릭 클래스
"만약 그것이 오리처럼 걷고 오리처럼 꽥꽥거린다면, 그것은 오리다"라는 느슨한 타입 체크의 예로부터 유래객체가 특정 구조를 만족한다면, 그 객체를 원본 타입으로 인정함.
타입은 집합이다.동등한 상태로 두 개의 타입을 결합상속에 초점, 부-모 관계 형성
구조적 타이핑으로 이건 오류가 안 난다.근데 코드를 작성하는 과정에서 이건 오류가 난다.
거두절미하고 타입 스클비트에서는 함수 표현식을 사용하는 것이 좋음.매개변수부터 반환값까지 전체를 함수 타입으로 선언해서 함수 표현식에 재사용 가능이렇게 추론한다.
타입에 T, I를 붙이는 건 요즘은 지양하는 추세유니온 타입은 있지만 유니온 인터페이스는 없다.인터페이스는 타입을 확장할 수 있지만, 유니온은 할 수 없다.
타입은 직접 지정할 수 있지만, 반복되는 타입을 이름을 지정해서 반복을 줄이는 것!(DRY)
TS에서는 '인덱스 시그니처'를 명시하여 유연하게 매핑을 표현할 수 있음.하지만 이런 식의 인덱스 시그니처는 타입 체크에 문제가 있다.모든 키를 허용(name 대신 Name도 허용함)특정 키가 필요 없음({}도 유효한 타입으로 허용)키 마다 다른 타입 안 됨(모든 타입
number 인덱스 시그니처보다는 Array, 튜플, ArrayLike를 사용하기자바스크립트.. 뭐하세요..?
프로퍼티나 배열의 요소가 변경되지 않도록 함.readonly로 배열을 선언하면 push가 아예 없다는 에러가 나온다.readonly는 얕게 동작한다.즉, 최상위 수준의 속성들은 변경 불가능하지만 그 요소가 참조하는 다른 객체의 내부 상태는 변경할 수 있다.const와
타입스크립트 초보자와 숙련자는 타입 구문의 수에서 차이가 남.숙련된 타입스크립트 개발자는 비교적 적은 수의 구문(그러나 중요한 부분)을 사용초보자 코드는 불필요한 타입 구문으로 도배타입 추론이 된다면 명시적 타입 구문을 필요하지 않다!오히려 방해가 된다.엇? 내가 생각
상태가 섞여있는 예다소 길지만 상태를 구분한 바람직한 예
38 any는 가능한 좁은 범위에서만
typescript와 @types 추가하기기존 js 라이브러리에는 타입이 없다.그래서 DefinitelyTyped에서 타입 정보를 얻을 수 있다.이 타입 모음은 @types 스코프에 공개된다.@types 라이브러리는 타입 정모나 포함하고 있으며 구현체는 포함하지 않는다
요약: js 초기 단점을 극복하기 위해 ts에 추가된 기능이 많은데 es가 발전하면서 js도 기능이 추가됨. 이게 충돌하는 경우 es가 우선인데 아직 남아 있는 것도 있음.ts 열거형은 상황에 따라 다르게 동작함.숫자 열거형에 0, 1, 2 외 다른 숫자가 할당되면 위
tsc는 js -> ts 변환 컴파일러말고 구js -> 신js로 트랜스파일링하는 기능도 있음.이렇게 모던 JS로 바꾸고 기능을 추가하는 것부터 시작할 수 있음.for-in 문법은 사용 지양(for-of, forEach 사용)객체 자신 뿐만 아니라 프로토타입 체이닝으로