각 속성값 타입을 명시하고 필수 여부를 지정하는 것이 생산성에 영향을 끼친다.
하지만 타입스크립트와는 달리 자바스크립트에서는 타입을 지정하는 문법이 없기 때문에 prop-types 패키지를 이용해 속성값에 타입을 지정한다.
prop-types 패키지 설치
yarn add prop-types각 속성값에 타입 및 디폴트값 지정
- name 속성값은 문자열 자료형이고 필수값
- age 속성값은 숫자 자료형이고 필수값
- region 속성값은 문자열 자료형이고 필수값이 아닐 때 아래와 같이 지정한다
클래스형 컴포넌트일 때
import React from 'react';
import PropTypes from "prop-types";
import 'App.css';
class Person extends React.Component {
    static propTypes = {
        // name은 문자열 자료형이며 필수값이다
        name: PropTypes.string.isRequired,
        age: PropTypes.number.isRequired,
        region: PropTypes.string,
    }
}필수값이 아닌 속성에는 디폴트값을 지정할 수 있다.
class Person extends React.Component {
    static propTypes = {
        // name은 문자열 자료형이며 필수값이다
        name: PropTypes.string.isRequired,
        age: PropTypes.number.isRequired,
        region: PropTypes.string,
    };
    static defaultProps = {
        region: "Seoul"
    };
    render() {
        const { name, age, region } = this.props;
        return (
            <div>
                안녕. 내 이름은 { name }이야. { age }살이고 {region}에 살아.
            </div>
        )
    }
}함수형 컴포넌트일 때
function Person({ name, age, region }) {
    return (
        <div>
            안녕. 내 이름은 { name }이야. { age }살이고 {region}에 살아.
        </div>
    );
}
Person.defaultProps = {
    region: 'Seoul'
};
Person.propTypes = {
    name: PropTypes.string.isRequired,
    age: PropTypes.number.isRequired,
    region: PropTypes.string
};