FE RYAN
완벽하지 않으면 어때
FE RYAN
전체 방문자
오늘
어제

블로그 메뉴

  • 💾 깃허브 링크
  • 홈
  • 태그
  • 분류 전체보기 (151)
    • 개인프로젝트 (8)
      • 개인 포트폴리오 웹앱 (6)
      • 프론트엔드 기술면접 아카이빙 웹앱 (2)
    • 기록 (121)
      • 원티드 프리온보딩 인턴십 (0)
      • 코드스테이츠 프론트엔드 (75)
      • 생각들 (3)
      • Today I learned (32)
      • 회고 (9)
      • 리뷰 (1)
    • 개발 (17)
      • React (3)
      • Javascript (7)
      • CSS (1)
      • HTML (3)
      • HTTP (1)
      • 자료구조 (0)
      • 알고리즘 (2)
    • 코딩테스트 (2)
      • 백준 (2)
      • 프로그래머스 (0)
    • 디자인 (1)
      • UI & UX (1)
    • 수학 (0)
    • 자기계발 (0)

공지사항

인기 글

태그

  • css
  • Til
  • 신입개발자
  • 원시타입
  • 포트폴리오
  • ES6
  • 회고
  • 프론트엔드
  • seb 39
  • HTML
  • useMemo
  • 딥다이브
  • 부트캠프
  • 자바스크립트 딥다이브
  • 메인프로젝트
  • 리액트
  • 자바스크립트
  • seb39
  • 타입스크립트
  • 코드스테이츠

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
FE RYAN

완벽하지 않으면 어때

기록/Today I learned

22.10.25 TIL

2022. 10. 25. 22:21
728x90

1. Done


1.1 타입스크립트

타입스크립트는 코드에 에러가 있더라도 컴파일은 진행된다.

function add(n1: number, n2: number) {
  return n1 + n2;
}

const num1 = '5'; // Argument of type 'string' is not assignable to parameter of type 'number'
const num2 = 2.2;
const result = add(num1, num2);
console.log(result);

// 매개변수에 지정한 타입과 전달인자의 타입이 일치하지 않음.
// 하지만 에러가 나도 컴파일은 진행됨.

타입스크립트의 주요 원시 타입은 모두 소문자로 시작한다

  • number, string ,boolean, ….etc

React.FC 타입

리액트 타입 패키지에서 제공되는 타입 중 하나이다. (node_modules → @types → react) App 컴포넌트에 할당된 React.FC 타입은 React.FunctionComponent를 말한다. 즉, 리액트 함수 컴포넌트를 타입으로 할당한 것이므로 App 함수는 JSX나 리액트 함수 컴포넌트를 리턴해야 한다.

import React from 'react';

const App: React.FC = () => {
  return <div className="App"></div>;
};

export default App;

Props 의 타입 할당

부모가 자식 컴포넌트에게 props 를 내려 줄 경우에, 자식은 내려받는 props의 타입을 지정해야 한다. 아래 코드에선 TodoListProps 라는 이름의 interface를 정의하여 items 배열 안의 객체의 각 프로퍼티의 타입을 지정하였다.

// components > TodoList.tsx
import React from 'react';

interface TodoListProps {
  items: { id: string; text: string }[];
}

const TodoList: React.FC<TodoListProps> = props => {
  return (
    <ul>
      {props.items.map(todo => {
        return <li key={todo.id}>{todo.text}</li>;
      })}
    </ul>
  );
};

export default TodoList;
// App.tsx
import React from 'react';
import TodoList from './components/TodoList';

const App: React.FC = () => {
  const todos = [
    {
      id: 't1',
      text: '운동하기',
    },
  ];

  return (
    <div className="App">
      <TodoList items={todos} />
    </div>
  );
};

export default App;

728x90
저작자표시 비영리 변경금지 (새창열림)

'기록 > Today I learned' 카테고리의 다른 글

22.10.27 TIL - 포폴앱 타입스크립트 마이그레이션  (0) 2022.10.29
22.10.26 TIL  (0) 2022.10.26
22.10.24 TIL  (0) 2022.10.24
22.10.21 TIL  (0) 2022.10.21
TIL 220416  (0) 2022.04.17
    '기록/Today I learned' 카테고리의 다른 글
    • 22.10.27 TIL - 포폴앱 타입스크립트 마이그레이션
    • 22.10.26 TIL
    • 22.10.24 TIL
    • 22.10.21 TIL
    FE RYAN
    FE RYAN

    티스토리툴바