프로그래밍/TypeScript(10)
-
인터페이스 | 타입 별칭
인터페이스 (interface) 타입스크립트 여러 객체를 정의하는 일종의 규칙/구조 interface 키워드 사용 ? 사용 시 선택적 속성 정의 가능 interface User { name: string, readonly age: number, // 읽기 전용 속성 (readonly) isValid?: boolean // 선택적 속성 (Optional property) } 인터페이스 + 타입 단언 interface A { name: string; } // 빈 객체로 초기화 하지만 // A의 구조로 변경될 것이라고 단언함 const a = {} as A; // A의 구조로 변경 a.name = 'abcdefg...'; 읽기 전용 속성 읽기 전용 속성 정의 가능 readonly 키워드 사용 // 모든 속성이..
2022.12.26 -
타입 추론 | 타입 단언 | 타입 가드
타입 추론 (Type Inference) 명시적으로 타입 선언이 되어있지 않을 경우 타입스크립트가 타입을 추론해서 제공함 let num = 12; num = 'Hello'; // Error. 타입스크립트가 num 변수를 Number 타입으로 추론함 타입 스크립트가 타입을 추론하는 경우 초기화된 변수 기본값이 설정된 매개 변수 반환 값이 있는 함수 // 초기화된 변수 num let num = 12; // 기본값이 지정된 매개 변수 b + 반환 값이 확실한 함수 add function add(a: number, b: number = 2) { return a + b; } 타입 추론 !== 엄격하지 않은 타입 선언 타입 추론을 활용해 모든 곳에 타입을 명시하지 않고도 코드 가독성을 높일 수 있음 타입 단언 (T..
2022.12.23 -
타입의 종류
String (문자열) const str: string = 'Hello'; Number (숫자) const num: number = 2; const pi: number = 3.14; const infi: number = Infinity; const nan: number = NaN; Boolean (true, false) const isDone: boolean = false; Array (배열) // 두 가지 방법 const fruits: string[] = ['Apple', 'Banana', 'Orange']; const fruits: Array = ['Apple', 'Banana', 'Orange']; // 유니언 타입 const array: (string | number)[] = ['Apple', 1..
2022.12.23 -
TypeScript 프로젝트 셋팅하기
package.json 생성 npm init -y typescript, parcel 설치 npm i -D typescript parcel package.json 수정 "main": "index.js", // 삭제 ... "scripts": { "dev": "parcel ./index.html", // 추가 "build": "parcel build ./index.html" // 추가 }, src/main.ts 생성 export {}; 루트 경로에 index.html 생성 및 스크립트 추가 루트 경로에 tsconfig.json 파일 추가 { "compilerOptions": { // 컴파일러 옵션 지정 "target": "ES2015", // 컴파일될 ES(JS) 버전 명시 "module": "ESNext"..
2022.12.19