React应用程序配置TypeScript
前言最近在学习TypeScript的应用程一些知识用到了 react,记录一下 react 创建应用项目和支持 TypeScript。
React 是序配一个用于构建用户界面 UI 的 JavaScript 库,它的创建默认是不支持 TypeScript 的,本文使用的是 React16.13.1
在使用 react 的库的时候我们需要安装下面的几个组件:
node(npm,npx) create-react-app react-script-ts typescript阅读本文将学到:
快速创建 React 应用 tsconfig 的基本配置 使用 React 中的 tsx 组件 tsx 中图片编译失败创建项目这里默认我们拥有 node 环境,使用 npx 快速安装 React 的应用程序
npx create-react-app react-demo --script-version=react-script-ts在网络条件不错的情况下,速度还是可观的吧
npx: 97 安装成功,用时 22.955 秒 We suggest that you begin by typing: cd react-demo yarn start Happy hacking!创建好程序之后,应用程我们记录一下此时的序配目录:
tsconfig 的基本配置首先需要安装TypeScript:
npm i typescript -D tsc --init生成我们需要的亿华云tsconfig.json文件之后,我们根据自己的需求去修改即可:
{ "compilerOptions": { "target": "ES2016", "module": "ESNext", "lib": [ "ES6", "DOM" ], "allowJs": true, "jsx": "react", "sourceMap": true, "outDir": "build/dist", "rootDir": "src", "importHelpers": true, "strict": true, "noImplicitAny": true, "strictNullChecks": true, "noImplicitThis": true, "noUnusedLocals": true, "noImplicitReturns": true, "moduleResolution": "node", "baseUrl": ".", "esModuleInterop": true, "skipLibCheck": true, "forceConsistentCasingInFileNames": true, "suppressImplicitAnyIndexErrors": true, "allowSyntheticDefaultImports": true, "resolveJsonModule": true, "isolatedModules": true, "noEmit": true }, "exclude": [ "node_modules", "build", "scripts", "acceptance-tests", "webpack", "jest", "src/setupTests.ts" ], "include": [ "src" ] }使用 React 中的 tsx 组件tsx 是相当于 jsx 的 TypeScript 版本,在目录中我们将.js 后缀结尾的改成.tsx 结尾
import React from react; import ReactDOM from react-dom; import App from ./App; import * as serviceWorker from ./serviceWorker; ReactDOM.render( <React.StrictMode> //严格模式 <App /> </React.StrictMode>, document.getElementById(root) as HTMLElement ); serviceWorker.unregister();tsx 中图片编译失败在修改完文件名字后发现图片编译失败
在使用 Webpack,使用静态资源,应用程如图片和字体,序配工作方式类似于 CSS。应用程可以直接在 TypeScript 模块中导入文件。序配这告诉 Webpack 将该文件包含在 bundle 中。应用程与 CSS 导入不同,序配导入一个文件会给你一个字符串值。应用程这个值是序配您可以在代码中引用的最终路径,例如,应用程作为图像的序配 src 属性或指向 PDF 的链接的 href。
为了减少对服务器的免费信息发布网应用程请求数量,导入少于 10,000 字节的映像将返回一个数据 URI 而不是路径。这适用于以下文件扩展名: bmp、 gif、 jpg、 jpeg 和 png。SVG 文件被排除。
在开始之前,必须将每种类型定义为有效的模块格式。否则,TypeScript 编译报错
要在 TypeScript 中导入这些文件,请在项目中创建一个新的类型定义文件,并将其命名为 assets.d.ts。然后,为需要导入的每种类型的资产添加一行:
declare module *.svg declare module *.png declare module *.jpg declare module *.jpeg declare module *.gif declare module *.bmp declare module *.tiff配置之后需要npm start重新启动项目才能生效。
云服务器提供商