# All files / src/chap03 TypeProp.js

0% Statements 0/3
100% Branches 0/0
0% Functions 0/2
0% Lines 0/3

Press n or j to go to the next uncovered block, b, p or k for the previous block.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38

     import PropTypes from 'prop-types';

    export function Member() {}
    function TypeProp(props) {
      console.log(props);
      return <p>결과는 콘솔에서 확인하기 바란다.</p>;
    }

    TypeProp.propTypes = {
      // Member형 속성
      prop1: PropTypes.instanceOf(Member),
      // 남성, 여성, 기타 중 하나
      prop2: PropTypes.oneOf(['남성', '여성', '기타']),
      // 문자열, 숫자, 부울 값 중 선택 가능
      prop3: PropTypes.oneOfType([
        PropTypes.string,
        PropTypes.number,
        PropTypes.bool,
      ]),
      // 숫자형 배열
      prop4: PropTypes.arrayOf(PropTypes.number),
      // 숫자형 객체
      prop5: PropTypes.objectOf(PropTypes.number),
      // name, age, sex 프로퍼티를 가진 오브젝트
      prop6: PropTypes.shape({
        name: PropTypes.string.isRequired,
        age: PropTypes.number,
        sex: PropTypes.oneOf(['남성', '여성', '기타']),
      }),
      prop7: PropTypes.exact({
        name: PropTypes.string.isRequired,
        age: PropTypes.number,
        sex: PropTypes.oneOf(['남성', '여성', '기타']),
      }),
    };

    export default TypeProp;