반응형
SMALL

TypeScript 8

TypeScript 유틸리티 타입

제네릭 타입이라고도 불립니다. 총 3가지입니다. 1. Partial Person 타입 중에서 부분집합 타입으로 지정할 수 있다. 하나만 만족해도 됨 interface Person { name: string; age: number; hasGirlFriend?: boolean; } type MyInfo = Partial; // 가능 const kiwon: MyInfo = {} // 가능 const kiwon: MyInfo = { name: 'kiwon kim', age: 29, } // 가능 const kiwon: MyInfo = { name: 'kiwon kim', age: 29, hasGirlFriend: true, } // 불가능 const kiwon: MyInfo = { name: 'kiwon', e..

TypeScript 2023.03.01

타입스크립트에서는 문장(function ...() {...})보다는 함수표현식(const ... () => {})을 쓰자!

// 문장 function rollDice(side: number): number { return side + 1; } // 함수 표현식 const rollDice2 = (side: number): number => { return side + 1 } // 함수 표현식 => 함수의 매개변수부터 반환값까지 전체를 함수타입으로 사용할 수 있음 type DiceType = (sides: number) => number; const add: DiceType = (sides) => { return sides + 1 } const subtract: DiceType = (sides) => { return sides + 1 }

TypeScript 2023.02.25

타입단언보다 타입선언을 사용하자(feat. DOM element는 좀 다름)

- 타입선언: 할당되는 값이 해당 인터페이스에 만족하는지 검사 - 타입단언: 강제로 타입 지정 => 타입체커에게 오류를 무시하라고 하는 것 (타입스크립트가 추론한 타입이 있더라도 Person 타입으로 간주) interface Person { name: string; // occupation : string } const alice: Person = { name: 'Alice', occupation: 'TypeScript Developer' } /** Type '{ name: string; occupation: string; }' is not assignable to type 'Person'. Object literal may only specify known properties, and 'occupati..

TypeScript 2023.02.25

타입을 집합으로 이해하기

never: 공집합 const x: never = 12; // Type 'number' is not assignable to type 'never'.(2322) unknown: 전체집합 리터럴타입: 원소가 1개인 집합 값이 T에 할당 가능: 값이 T의 원소 T1이 T2에 할당 가능: T1이 T2의 부분집합 T1이 T2를 상속: T1이 T2의 부분집합 T1 | T2: T1과 T2의 합집합 type A = 'A' type B = 'B'; type Twelve = 12; type AB = 'A' | 'B'; type AB12 = 'A' | 'B' | 12; const a: AB = 'A'; const c: AB = 'C' // Type '"C"' is not assignable to type 'AB'.(232..

TypeScript 2022.06.19

코드생성과 타입은 관계가 없음

타입스크립트 컴파일러 역할 최신 타입스크립트/자바스크립트를 브라우저에서 동작할 수 있도록 ⇒ 구버전의 자바스크립트로 트랜스파일 트랜스파일 = translate + compile 여전히 컴파일되야하는 코드이기 때문에 컴파일과 분리되어 용어가 설명됨 코드 타입 오류 체크 ⇒ 서로 완벽히 독립적 타입스크립트가 자바스크립트로 변환될 때 코드 타입에는 영향을 주지 않음 자바스크립트 실행시점에도 타입은 영향을 미치지 않음 런타임에는 타입체크가 불가능 instanceof 체크는 런타임에 일어나지만, Rectangle은 타입이라서 런타임에는 아무런 영향이 없음. 따라서 해당 오류가 발생 // 'Rectangle' only refers to a type, but is being used as a value here.(2..

TypeScript 2022.06.19

noImplicitAny, strictNullChecks의 선언

noImplicitAny function add(a, b) { return a + b } noImplicitAny가 해제돼있다면, 해당 코드의 타입은 다음과 같습니다. function add(a: any, b: any): any {} any타입을 매개변수에 사용하면 타입 체커는 유명무실해짐 따라서 noImplicitAny = true로해야함 그러면 위 코드는 다음과 같은 에러를 반환 // ‘a’ 매개변수에는 암시적으로 any 형식이 포함됩니다. 암시적으로 any로 설정됨 이는 해당 환경에서 오류로 간주 에러를 해결하려면 다음과 같이 하면됨 function add(a: number, b: number) { return a + b } // 혹은 function add(a: any, b: any) { retu..

TypeScript 2022.06.19
반응형
LIST