Intro  In this time, I tried Hooks.  [TypeScript] Try React 1  [TypeScript] Try React + Redux   Try Hooks  Introducing Hooks – React   According to the documents, Hooks were for using states and side-effects in function components.  State  "useStates" gave me current states and functions what create next states like Reducer of Redux.  App.tsx   import 'raf/polyfill'; import React, { useState, useEffect } from 'react'; import logo from './logo.svg'; import './App.css'; import { renderBoard } from './tic-tac-toe-hooks/BoardHook'; import { BoardState } from './tic-tac-toe/Board';  function App() {     // default value and the "state" type came from the argument of "useState".    const [state, setBoardState] = useState(initialState());     function updateSquareValues(key: number) {     const lastSquares = state.squares.slice();     lastSquares[key] = (state.nextIsX)? '✕': '◯';          // update ...