반응형
우리는 props를 이용할 때 prop-types을 이용하여 자료형을 지정해 오류를 줄일 수 있다.
전체 애플리케이션의 타입 확인을 위하여 Flow 또는 TypeScript 와 같은 JavaScript 도구(Extensions)를 사용하지 않더라도 React는 내장된 타입 확인 기능들을 가지고 있다.
컴포넌트의 props에 타입 확인을 하려면 다음과 같이 특별한 프로퍼티인 propTypes를 선언할 수 있다.
모듈 설치는 다음과 같이 npm 혹은 yarn으로 설치하고 불러온다
> npm i prop-types
> npm install (안 될 시)
import PropTypes from "prop-types";
Food.PropTypes = { //PropTypes 이름 고정
name: PropTypes.string.isRequired, //필수로 string, 아니면 에러
picture: PropTypes.string.isRequired,
rating: PropTypes.number //필수는 아니지만 number or undefined
};
isRequired로 필수 지정을 할 수 있고,
PropType의 종류에는 다음과 같다
- array: 배열
- arrayOf: 특정 propType으로 이루어진 배열
- bool: true or false 값
- func: 함수
- number: 숫자
- object: 객체
- string: 문자열
- symbol: ES6의 Symbol
- node: 렌더링할 수 있는 모든 것(숫자, 문자열, JSX코드)
- instanceOf: 특정 클래스의 인스턴스(ex: instanceOf(MyClass))
- oneOf(['dog', 'cat']): 주어진 배열 요소 중 값 하나
- oneOfType([React.PropTypes.string, PropTypes.number]): 주어진 배열 안의 종류 중 하나
- objectOf(React.PropTypes.number): 객체의 모든 키 값이 인자로 주어진 PropType인 객체
- shape({ name: PropTypes.string, num: PropTypes.number }): 주어진 스키마를 가진 객체
- any: 아무 종류
반응형
'Web.d' 카테고리의 다른 글
[Typescript][React] Typescript 기본 개념 (Nomad Coders' course) / 10 Bad TS Habits (0) | 2021.07.12 |
---|---|
[React] 생활코딩 기본 개념 강의 (0) | 2021.07.08 |
[React] ReactJS로 영화 웹 서비스 만들기 (Nomad Coders' course) (4) | 2021.06.26 |
[HTML] 시멘틱 태그 (Semantic Tag) (0) | 2021.04.05 |
네이밍 컨벤션(Naming Convention) - 스네이크/ 케밥/ 카멜/ 파스칼/ 헝가리언 표기법 (0) | 2021.04.05 |