成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

在 Create React App 中使用 TypeScript,你學(xué)會(huì)了嗎?

開(kāi)發(fā) 前端
確保你的項(xiàng)目中包含了所需的類型聲明文件后,TypeScript 編譯器就能夠正確地檢查和驗(yàn)證你對(duì)這些庫(kù)的使用,以及在開(kāi)發(fā)過(guò)程中顯示相關(guān)的錯(cuò)誤和提示信息。

在React項(xiàng)目中引入TypeScript(TS)涉及到一系列配置步驟。以下是一個(gè)完整的配置過(guò)程,從創(chuàng)建React項(xiàng)目到配置TypeScript:

1. 需要?jiǎng)?chuàng)建一個(gè)使用 TypeScript 的新項(xiàng)目

首先,你可以使用create-react-app工具來(lái)創(chuàng)建一個(gè)React結(jié)合TypeScript的項(xiàng)目。Create React App 內(nèi)置了對(duì) TypeScript 的支持。在命令行中運(yùn)行以下命令:

npx create-react-app my-app --template typescript

這將創(chuàng)建一個(gè)名為my-react-app的React項(xiàng)目,并安裝默認(rèn)的配置。

2. 進(jìn)入項(xiàng)目目錄:

cd my-react-app

3. 已有的項(xiàng)目添加TyoeScript:

npm install --save typescript @types/node @types/react @types/react-dom @types/jest

4. 重命名文件并修改后綴:

將項(xiàng)目目錄下的src/App.js文件重命名為src/App.tsx,這樣React就能識(shí)別它是一個(gè)TypeScript文件。

5. 修改 src/index.tsx 文件:

將src/index.js文件中的內(nèi)容改為:

import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';


ReactDOM.render(
  <React.StrictMode>
    <App />
  </React.StrictMode>,
  document.getElementById('root')
);

6. 配置 tsconfig.json 文件:

沒(méi)有配置項(xiàng),編譯器提供不了任何幫助。在 TypeScript 里,這些配置項(xiàng)都在一個(gè)名為 tsconfig.json 的特殊文件中定義。可以通過(guò)執(zhí)行以下命令生成該文件:使用 Yarn,執(zhí)行:

yarn run tsc --init

使用 npm,執(zhí)行:

npx tsc --init

在 tsconfig.json 文件里面添加以下基本配置:

{
  "compilerOptions": {
    "target": "es5",
    "lib": ["dom", "dom.iterable", "esnext"],
    "allowJs": true,
    "skipLibCheck": true,
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true,
    "strict": true,
    "forceConsistentCasingInFileNames": true,
    "module": "esnext",
    "moduleResolution": "node",
    "resolveJsonModule": true,
    "isolatedModules": true,
    "noEmit": true,
    "jsx": "react-jsx"
  },
  "include": ["src/**/*.ts", "src/**/*.tsx"],
  "exclude": ["node_modules"]
}

這個(gè) tsconfig.json 文件包含了基本的TypeScript配置。你可以根據(jù)項(xiàng)目的需求進(jìn)行調(diào)整。更多配置請(qǐng)參考文檔

7. 修改 src/App.tsx 文件:

在 src/App.tsx 文件中,可以使用 TypeScript 的語(yǔ)法,例如聲明組件的 props 類型和狀態(tài)類型:

import React, { useState } from 'react';


interface AppProps {
  message: string;
}


const App: React.FC<AppProps> = ({ message }) => {
  const [count, setCount] = useState<number>(0);


  return (
    <div>
      <h1>{message}</h1>
      <p>Count: {count}</p>
      <button onClick={() => setCount(count + 1)}>Increment</button>
    </div>
  );
}


export default App;

這里使用了 TypeScript 的 interface 來(lái)定義 App 組件的 props 類型,以及使用 useState 聲明了 count 的狀態(tài)類型。

8.文件擴(kuò)展名在 React 中,組件文件大多數(shù)使用 .js 作為擴(kuò)展名。在 TypeScript 中,提供兩種文件擴(kuò)展名:

.ts 是默認(rèn)的文件擴(kuò)展名,而 .tsx 是一個(gè)用于包含 JSX 代碼的特殊擴(kuò)展名。

9.類型定義如果你想要顯示來(lái)自其他包(libraries)的錯(cuò)誤和提示,通常你需要安裝相應(yīng)庫(kù)的 TypeScript 類型聲明。TypeScript 類型聲明文件的后綴為 .d.ts,它包含了有關(guān)庫(kù)的類型信息,使得 TypeScript 編譯器能夠理解和驗(yàn)證你對(duì)庫(kù)的使用。

以下是一些常見(jiàn)情況下可能需要安裝的 TypeScript 類型聲明的例子:

React 類型聲明:

npm install --save @types/react @types/react-dom

如果你使用了 React,這個(gè)命令將安裝 React 和 ReactDOM 的類型聲明文件。

其他 npm 包的類型聲明:

對(duì)于其他可能使用的庫(kù),你可以查看它們的 npm 包是否有相應(yīng)的 @types 包。例如,如果你使用了 axios,可以運(yùn)行:

npm install --save @types/axios

聲明文件不可用的情況:

有時(shí),某些包可能沒(méi)有官方的 TypeScript 類型聲明文件,或者它們可能不是最新的。在這種情況下,你可能需要使用類型聲明文件生成工具,例如 tsc(TypeScript 編譯器)的 --allowJs 和 --declaration 選項(xiàng),以從 JavaScript 代碼生成類型聲明文件。但請(qǐng)注意,這可能不如官方的類型聲明文件準(zhǔn)確和全面。

確保你的項(xiàng)目中包含了所需的類型聲明文件后,TypeScript 編譯器就能夠正確地檢查和驗(yàn)證你對(duì)這些庫(kù)的使用,以及在開(kāi)發(fā)過(guò)程中顯示相關(guān)的錯(cuò)誤和提示信息。

責(zé)任編輯:武曉燕 來(lái)源: 海燕技術(shù)棧
相關(guān)推薦

2025-01-09 07:50:34

.NET 9ScalarSwagger

2024-02-02 11:03:11

React數(shù)據(jù)Ref

2023-03-14 08:17:40

Bash編程語(yǔ)言

2023-12-27 07:31:45

json產(chǎn)品場(chǎng)景

2023-10-30 07:05:31

2023-08-01 12:51:18

WebGPT機(jī)器學(xué)習(xí)模型

2024-01-02 12:05:26

Java并發(fā)編程

2024-01-19 08:25:38

死鎖Java通信

2024-02-04 00:00:00

Effect數(shù)據(jù)組件

2023-07-26 13:11:21

ChatGPT平臺(tái)工具

2023-01-10 08:43:15

定義DDD架構(gòu)

2022-11-08 08:45:30

Prettier代碼格式化工具

2023-06-15 08:00:23

2022-11-21 16:57:20

2024-08-19 10:24:14

2024-05-22 08:03:15

2024-03-06 08:28:16

設(shè)計(jì)模式Java

2022-06-16 07:50:35

數(shù)據(jù)結(jié)構(gòu)鏈表

2022-12-06 07:53:33

MySQL索引B+樹(shù)

2023-01-31 08:02:18

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 91视频88av | 成人在线中文 | 亚洲精品一区中文字幕乱码 | 国产99精品 | 最近中文字幕免费 | 国产精品久久精品 | 久久久综合网 | 成人午夜高清 | 亚洲精品久久久蜜桃 | 精品国产欧美一区二区三区成人 | 曰韩三级 | 国产综合精品一区二区三区 | 精品视频一二区 | 放个毛片看看 | 色爱av| 伊人网站在线 | 亚洲久在线 | www.天天操.com | 国产精品久久久久久久久久久久 | 欧州一区二区三区 | 亚洲精品区 | 午夜爱爱网 | 91麻豆精品国产91久久久久久 | 97精品视频在线 | 自拍第一页 | 欧美成视频 | www.夜夜骑| 亚洲iv一区二区三区 | 成人免费在线电影 | 欧美国产日韩在线 | 久热精品在线 | 91在线视频播放 | 成人做爰69片免费观看 | 欧美专区在线 | 中文亚洲字幕 | 精品毛片| 国产精品免费视频一区 | 日日综合| 欧美最猛黑人 | 久久久做 | 日本精品一区二区三区视频 |