自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Typescript + React 新手篇

開發(fā) 開發(fā)工具
TS是什么?TypeScript = Type + Script(標準JS)。TS的官方網(wǎng)站:TypeScript is a typed superset of JavaScript that compiles to plain JavaScript。TypeScript是一個編譯到純JS的有類型定義的JS超集。

 

前言

TS是什么

TypeScript = Type + Script(標準JS)。

TS的官方網(wǎng)站:TypeScript is a typed superset of JavaScript that compiles to plain JavaScript。TypeScript是一個編譯到純JS的有類型定義的JS超集。

TS優(yōu)點

  • TS 最大的優(yōu)勢是它提供了強大的靜態(tài)分析能力,結(jié)合 TSLint 能對代碼做到更加嚴格的檢查約束。傳統(tǒng)的 EcmaScript 由于沒有靜態(tài)類型,即使有了 ESLint 也只能做到很基本的檢查,一些 typo 問題可能線上出了 Bug 后才被發(fā)現(xiàn)。
  • TS 讓代碼更加健壯,尤其是對于大型項目,編譯通過幾乎就代表運行正常,也給重構增加了很多信心。
  • TS 類型聲明提高了代碼的可讀性、結(jié)構清晰
  • IDE的提示更加智能

目標

  • 完成td的媒體模塊(基于react+umi+ant design),重構以前的ES6代碼為TS代碼
  • umi-typescript 腳手架
  • 跑通代碼
  • 新建媒體頁面
  • 創(chuàng)建媒體model
  • 媒體service
  • charles
  • 接入dev環(huán)境
  • 接入鑒權
  • 頁面列表
  • 路由配置提取出來
  • 結(jié)合td umi/webpack/ dva 配置
  • 全局錯誤信息從接口讀取
  • 更換主題
  • 深入代碼(最重要的部分)

花了大概兩天時間實現(xiàn)以上勾選內(nèi)容,主要是熟悉TS的配置文件、構建配置、ts語法、以及react、dva如何寫。

安裝依賴

基本配置

tsconfig.json

這個文件指定了用來編譯這個項目的根文件和編譯選項

JSX參數(shù)指定工作模式:preserve 模式、 react 模式以及 react-native 模式。這三個模式只影響編譯策略。preserve 模式生成代碼中會保留 JSX ,以供后續(xù)的轉(zhuǎn)換操作使用(比如:Babel),輸出的文件是 .jsx 格式的;而 react模式則會直接編譯成 React.createElement,在使用前就不需要再進行 JSX 轉(zhuǎn)換了,輸出的文件是 .js 格式的;react-native模式相當于preserve,它也保留了所有的JSX,但是輸出文件的擴展名是.js。

jsconfig.json

指定根文件和JavaScript語言服務提供的功能選項。

提示:如果您不使用JavaScript,則無需擔心jsconfig.json。

提示:jsconfig.json源于tsconfig.json,是TypeScript的配置文件。jsconfig.json相當于tsconfig.json的“allowJs”屬性設置為true。

webpack配置

文件后綴改成ts或者tsx

文件名為ts和tsx(React)后綴的代碼了,它可以和現(xiàn)有的ES6代碼共存,IDE會自動校驗這部分代碼,webpack打包也沒問題了。

業(yè)務代碼

目錄截圖

data.d.ts

定義業(yè)務對象數(shù)據(jù)結(jié)構接口(interface),字段類型可以是number,string,boolean,也可以是業(yè)務對象(下方的Member),也可以是多個值中的一個(下方的status,可以設置成枚舉),不確定類型的時候用any,數(shù)組的話用‘類型[]’,字段不一定存在用‘?’

model.ts

處理數(shù)據(jù)和邏輯,包含同步更新 state 的 reducers,處理異步邏輯的 effects,訂閱數(shù)據(jù)源的 subscriptions 。

Partial 作用是將傳入的屬性變?yōu)榭蛇x項。

Readonly 作用是將傳入的屬性變?yōu)橹蛔x。

service.ts

定義接口請求的路徑、方法和參數(shù),返回為Promise。

類組件

connect

connect dva 和 react component

函數(shù)組件

在@types/react中已經(jīng)預定義一個類型type SFC,它也是類型interface StatelessComponent 的一個別名,此外,它已經(jīng)有預定義的children和其他(defaultProps、displayName等等…),所以我們不用每次都自己編寫!

form組件

高階函數(shù)

最后

TS 使得代碼變得非常清晰、可讀、規(guī)范,雖然改起來有些工作量。希望后續(xù)的項目中可以應用起來。

推薦文章

1. ts文檔 https://www.tslang.cn/docs/handbook/basic-types.html

2. ts2.8終極react組件 https://juejin.im/post/5b07caf16fb9a07aa83f2977#heading-6

3. ant design pro ts 版本 https://github.com/ant-design/ant-design-pro

4.<TypeScript,初次見面,請多指教> https://zhuanlan.zhihu.com/p/57958328

【本文是51CTO專欄機構“AiChinaTech”的原創(chuàng)文章,微信公眾號( id: tech-AI)”】

戳這里,看該作者更多好文

 

責任編輯:華軒 來源: 51CTO
相關推薦

2025-03-06 11:07:27

2020-10-14 15:05:02

React應用程序

2022-04-19 09:00:52

ReactTypeScript

2023-07-03 13:50:13

ReactonResize事件

2020-06-01 09:40:06

開發(fā)ReactTypeScript

2022-08-19 09:01:59

ReactTS類型

2020-06-03 16:50:24

TypeScriptReact前端

2023-01-04 10:01:21

ReactTypeScript元素

2021-07-10 09:02:42

編程語言 TypeScript

2020-11-09 14:26:30

GitHub 技術開源

2021-07-29 07:55:20

React實踐代碼

2022-03-22 09:09:17

HookReact前端

2009-10-28 13:17:34

2010-11-17 16:45:41

虛擬機

2019-05-07 11:24:07

ReactJavascriptTypescript

2023-07-07 08:02:48

TypeScript編譯器文檔

2024-01-30 08:30:41

TypeScript編譯器類型

2021-09-14 07:06:13

React項目TypeScript

2009-11-04 16:00:20

2020-04-29 08:28:11

React開發(fā)代碼
點贊
收藏

51CTO技術棧公眾號