본문 바로가기

Typescript5

[Typescript] <T>가 뭐니?

2022. 11. 6.

[Typescript] 타입가드란? 사용법

이해해보자 export interface ErrorResponse {} export const isErrorResponse = (x: unknown): x is ErrorResponse => { return (typeof x === 'string' || typeof x === 'object') && x !== null; }; 2022. 11. 6.

[Typescript] type과 interface의 차이

차이점 - interface는 선언적 확장이 가능하다. - interface는 객체 타입을 만들기 위한 것이다. 객체 타입만 만들 수 있다. - interfacesms computed type을 만들 수 없다. interface는 '선언적 확장'이 가능하다는 점. 선언적 확장이라고 하면, interface를 같은 이름으로 선언이 가능하다는 것이다. type은 같은 이름으로 type 선언이 불가능함. - 확장 방법의 차이 interface는 클래스처럼 다룰 수 있다. 다른 interface에 extends할 수 있다. interface Human { id: number, name: string } interface Student extends human { school: string } type은 다음처럼.. 2022. 10. 12.

[Typescript] Omit? Partial? Pick?

Partial 특정 타입의 부분 집합을 만족하는 타입을 정의할 수 있다. interface Product { id: number, name: string, price: number } type PartialProduct = Partial const empty: PartialProduct = {}; const water: PartialProduct = {name: 'water'}; const paper: PartialProduct = {price: 1000}; Pick 특정 타입에서 몇 개의 속성을 선택해서 타입을 정의한다. type CreateTodo = Pick; Omit 특정 속성만 제거한 타입을 정의합니다. type CreateTodo = Omit; interface Product { id: num.. 2022. 10. 11.

Typescript + React 컴포넌트 간에 props 데이터 전달 중 발생한 문제

부모 컴포넌트에서 자식 컴포넌트로 props를 설정하고 있었는데, 자꾸 에러가 발생했습니다. IntrinsicAttributes 형식에 속성이 없다는 에러였습니다. 에러 메시지 'IntrinsicAttributes & ImovieInfo[]' 형식에 'nowPlayingMovies' 속성이 없습니다.ts(2322) 문제 부모 컴포넌트 - interface IProps에 detail 객체로 원소를 만들지 않았음. -> IProps 자체를 인터페이스로 쓰려고 해서 발생한 문제임. - interface IProps에 isLoading을 타이핑해주지 않았음. - props 설정하는 자식컴포넌트의 파라미터에는 {...변수 명}으로 작성하지 않았음. 해결 방법 Container(props를 내려주는 컴포넌트) - .. 2021. 7. 11.