服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

node.js|vue.js|jquery|angularjs|React|json|js教程|

服务器之家 - 编程语言 - JavaScript - React - 在 Create React App 中使用 TypeScript,你学会了吗?

在 Create React App 中使用 TypeScript,你学会了吗?

2024-01-30 14:03海燕技术栈 React

在React项目中引入TypeScript(TS)涉及到一系列配置步骤。以下是一个完整的配置过程,从创建React项目到配置TypeScript: 1. 需要创建一个使用 TypeScript 的新项目 首先,你可以使用create-react-app工具来创建一个React结合TypeScript的项目。

在React项目中引入TypeScript(TS)涉及到一系列配置步骤。以下是一个完整的配置过程,从创建React项目到配置TypeScript:

1. 需要创建一个使用 TypeScript 的新项目

首先,你可以使用create-react-app工具来创建一个React结合TypeScript的项目。Create React App 内置了对 TypeScript 的支持。在命令行中运行以下命令:

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

这将创建一个名为my-react-app的React项目,并安装默认的配置。

2. 进入项目目录:

cd my-react-app

3. 已有的项目添加TyoeScript:

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

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

将项目目录下的src/App.js文件重命名为src/App.tsx,这样React就能识别它是一个TypeScript文件。

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

将src/index.js文件中的内容改为:

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 文件:

没有配置项,编译器提供不了任何帮助。在 TypeScript 里,这些配置项都在一个名为 tsconfig.json 的特殊文件中定义。可以通过执行以下命令生成该文件:使用 Yarn,执行:

yarn run tsc --init

使用 npm,执行:

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"]
}

这个 tsconfig.json 文件包含了基本的TypeScript配置。你可以根据项目的需求进行调整。更多配置请参考文档

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

在 src/App.tsx 文件中,可以使用 TypeScript 的语法,例如声明组件的 props 类型和状态类型:

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 来定义 App 组件的 props 类型,以及使用 useState 声明了 count 的状态类型。

8.文件扩展名在 React 中,组件文件大多数使用 .js 作为扩展名。在 TypeScript 中,提供两种文件扩展名:

.ts 是默认的文件扩展名,而 .tsx 是一个用于包含 JSX 代码的特殊扩展名。

9.类型定义如果你想要显示来自其他包(libraries)的错误和提示,通常你需要安装相应库的 TypeScript 类型声明。TypeScript 类型声明文件的后缀为 .d.ts,它包含了有关库的类型信息,使得 TypeScript 编译器能够理解和验证你对库的使用。

以下是一些常见情况下可能需要安装的 TypeScript 类型声明的例子:

React 类型声明:

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

如果你使用了 React,这个命令将安装 React 和 ReactDOM 的类型声明文件。

其他 npm 包的类型声明:

对于其他可能使用的库,你可以查看它们的 npm 包是否有相应的 @types 包。例如,如果你使用了 axios,可以运行:

npm install --save @types/axios

声明文件不可用的情况:

有时,某些包可能没有官方的 TypeScript 类型声明文件,或者它们可能不是最新的。在这种情况下,你可能需要使用类型声明文件生成工具,例如 tsc(TypeScript 编译器)的 --allowJs 和 --declaration 选项,以从 JavaScript 代码生成类型声明文件。但请注意,这可能不如官方的类型声明文件准确和全面。

确保你的项目中包含了所需的类型声明文件后,TypeScript 编译器就能够正确地检查和验证你对这些库的使用,以及在开发过程中显示相关的错误和提示信息。

原文地址:https://mp.weixin.qq.com/s/Y5NlwFQDfvC5EXb1TOfT4w

延伸 · 阅读

精彩推荐
  • React浅析五种 React 组件设计模式

    浅析五种 React 组件设计模式

    作为一名 React 开发者,你可能会面临下面几个问题: 如何构建一个高复用度性的组件,使其适应不同的业务场景? 如何构建一个具有简单 API的组件,使...

    政采云技术4082024-01-09
  • React如何使用Redux Toolkit简化Redux

    如何使用Redux Toolkit简化Redux

    这篇文章主要介绍了如何使用Redux Toolkit简化Redux,帮助大家更好的理解和学习使用React框架,感兴趣的朋友可以了解下...

    杭州程序员张张9122022-02-24
  • ReactReact ref的使用示例

    React ref的使用示例

    这篇文章主要介绍了React ref的使用详解,帮助大家更好的理解和学习使用React,感兴趣的朋友可以了解下...

    陈小瓦8882022-02-25
  • React理解这个机制,是成为React性能优化高手的关键

    理解这个机制,是成为React性能优化高手的关键

    这篇文章分享了两个 React 项目性能优化的最重要的手段。我们只要了解了真实的底层机制,就能写出高性能的代码,他们的理解难度并不高。我们只需要在...

    这波能反杀9072024-01-16
  • Reactreact项目引入scss的方法

    react项目引入scss的方法

    这篇文章主要介绍了react项目引入scss的方法,本文给大家介绍了React pwa的配置方法,通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参...

    范天缘10742022-03-08
  • ReactReact使用高德地图的实现示例(react-amap)

    React使用高德地图的实现示例(react-amap)

    这篇文章主要介绍了React使用高德地图的实现示例(react-amap),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的...

    yzbyxmx8962022-03-05
  • ReactReact如何利用Antd的Form组件实现表单功能详解

    React如何利用Antd的Form组件实现表单功能详解

    这篇文章主要给大家介绍了关于React如何利用Antd的Form组件实现表单功能的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的...

    GuanJdoJ8462022-03-01
  • ReactReact服务端渲染原理解析与实践

    React服务端渲染原理解析与实践

    这篇文章主要介绍了React服务端渲染原理解析与实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们...

    隐冬8262022-02-10