React 與 Hooks 如何使用 TypeScript 書寫類型?


React 與 Hooks 如何使用 TypeScript 書寫類型?

本文寫於 2020 年 9 月 20 日

函數組件與 TS

對於 Hooks 來說是不支持使用 class 組件的。

如何在函數組件中使用 TS 呢?

首先定然是函數的類型,我們需要告訴 TS,這個函數他是個 React 組件。

如果是 JavaScript,我們會這么寫函數組件:

import React from 'react';

const MyComponent = () => {
  return <h1>你好,世界</h1>
}

但如果是 TypeScript,我們就應該加上類型了。

React 為我們提供了一個叫做 React.FunctionComponent 的類型,學過小學二年級英語的同學應該都知道,這個類型是 React.函數組件 的意思。如果你覺得這個名字太長了不好寫,React 也提供了一個簡單版本:React.FC

import React from 'react';

const MyComponent: React.FC = () => {
  return <h1>你好,世界</h1>
}

如果我們希望它能接收到 Children 該怎么寫呢?直接寫就可以了。

const MyComponent: React.FC = (props) => {
  return (
    <div>
      {props.children}
    </div>
  )
}

但這種情況是不可以接受額外的參數的。我們必須要聲明我們函數需要接收哪些參數。

interface Props {
  title: string;
  msg: string;
  list: number[];
}

然后將這個 Props 接口提供給 React.FC,寫成:React.FC<Props>

此時我們函數接收的參數 props 除了函數組件默認可以接收的一些參數,例如 children 之外,還可以接收 Props 接口聲明的參數了。

useState

useState 的類型聲明如右邊:const [count, setCount] = useState<number>(0)

useRef

useRef 我們通常用來管理 DOM,但也可以用用來管理其他的變量。

這里就說一下取 HTML DOM 元素的類型:HTMLInputElement 等等即可。

(完)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM