본문 바로가기

TypeScript4

[Typescript] 4. ts-for-jsdev 타입 시스템 심화 타임 시스템 강화 타입 좁히기 타입 추론 타입 단언 집합의로서의 타입 서로소 유니온 타입 타입 좁히기 타입 가드 특정 스코프 내에서 값의 타입을 좁히는, 즉 타입 좁히기를 유발하는 표현을 타입가드 (type guard)라 부르며, 크게 두 종류로 나뉜다. 한 종류는 제어 흐름 분석 (control flow analysis)을 통해 타입을 좁히는 가드들이고, 다른 하나는 프로그래머가 값을 어떤 타입으로 좁혀햐 하는지 직접 명시할 수 있는 수단인 사용자 정의 타입 가드 (user defined type guard) 다. 제어 흐름 분석 if, else, if else while, for switch, case break, continue return 컴파일러는 이런 제어 구조로부터 코드의 특정 시점에서 프로.. 2023. 10. 6.
[Typescript] 3. ts-for-jsdev 타입의 호환성 타입의 호환성 기본 타입의 호환성 객체 타입의 호환성 함수 타입의 호환성 클래스의 호환성 제네릭의 호환성 열거형의 호환성 기본 타입의 호환성 두 가지 다른 타입의 A와 B에 대해, 모든 A 타입의 값을 B 타입의 값으로도 취급할 수 있는가? 할당 가능 type OneDigitOdd = 1 | 3 | 5 | 7 | 9; const three: OneDigitOdd = 3; const num: number = three; 할당 불가능 const four: number = 4; const oneDigitOdd: OneDigitOdd = four; // error TS2322: Type 'number' is not assignable to type 'OneDigitOdd'. 객체 타입의 호환성 타입 A와 B에 .. 2023. 10. 6.
[Typescript] 2. ts-for-jsdev 인터페이스와 클래스 공부 인터페이스와 클래스 인터페이스 기초 색인 기능 타입 인터페이스 확장 클래스 클래스 확장 클래스 심화 인터페이스와 클래스의 관계 interface 사용자 정의 타입을 정의하는 방법중 하나. 인터페이스는 객체의 구조를 정의하며, 해당 객체가 반드시 가져야하는 멤버와 해당 멤버의 데이터타입을 지정한다. class 객체 지향 프로그래밍의 핵심 개념중 하나로, 객체를 생성이 가능하다. 클래스는 속성(멤버 변수)와 메서드(멤버 함수)를 가질 수 있으며, 객체를 생성하고 초기화하는데 사용된다. interface interface User { name: string; height: number; } 읽기 전용 속성, 선택 속성 정의 interface User { name: string; readonly height: .. 2023. 9. 30.
[Typescript] 1. ts-for-jsdev 타입스크립트 기초 문법 공부 타입스크립트 기초 문법 기본 타입 배열과 튜플 객체 타입 별칭 함수 제네릭 유니온 타입 인터섹션 타입 열거형 Typescript - 정적 타입 시스템 static type system을 도입한 자바스크립트 - TS는 JS의 상위집합. - TS는 정적 타입 언어로써, 실사용자가 맞닥뜨리는 버그 중 약 15%를 사전에 예방이 가능하다고 한다. - 자동완성 -> 컴파일러 및 코드 에디터가 코드를 실행하지 않고도 프로그램에 대해 훨씬 더 많은 정보를 제공해준다. - 실행 전, 타입 검사를 하기 때문에 타입 정의와 다르게 동작하는 프로그램은 실행 자체가 불가능하다. 점진적 타이핑 점진적으로 타입 안정성을 키워가는 것을 허용하는 타입 시스템 기본타입 boolean const a: boolean = true or f.. 2023. 9. 28.