程序员

如何给你的Taro小程序项目加上TS

2020-12-03  本文已影响0人  胡小喵_

前言

现在有越来越多的项目开始使用 ts,我们熟知的 React 、Ant Design 也已经全面转变为 ts。那么 ts 能给我们带来什么呢?

粗谈 TypeScript

很多人会好奇,ESLint 可以为我们提示代码不规范以及使用错误等问题,在有 ESLint 的情况下为什么还需要 TypeScript?

首先,ESLint 是用来检测代码规范的,并不能检测代码逻辑问题。

其次,我们都知道 JavaScript 是一种弱类型语言,并且是在运行时检查的动态类型。而 Typescript 相对于 Javascript 为我们带来了静态类型,它可以根据我们对变量的类型定义、以及自身的类型断言在编译期对代码进行类型检查。

简单介绍过后,下面我们开始进入正题,给 Taro 项目加上 TS。

TS 快到项目里来

1. 新增包

首先是关于 npm 包的安装,这里我建议通过 taro init 选择 Typescript,创建内置 ts 环境的新项目。

下面是 ts 相关包:

"@typescript-eslint/eslint-plugin": "^2.x",
// esLint插件,为TypeScript代码库提供lint规则
"@typescript-eslint/parser": "^2.x",
// 允许ESLint,对TypeScript代码进行整理
"typescript": "^3.7.0",
// 我们的主角 typescript
"@types/react": "^17.0.0",
// React的类型定义
"@types/react-dom": "^17.0.0",
// React-dom 的类型定义
"@types/webpack-env": "^1.13.6",
// webpack(模块API)的类型定义
"@types/wechat-miniprogram": "^3.1.0",
// 微信小程序的类型定义

@types/** 此类包,是为了让我们能在 ts 中使用第三方库的 API,关于这方面的介绍可以查看这篇文章:在 typescript 中使用第三方库

2. tsconfig.json

Typescript 和 ESLint 一样,都需要配置文件作为编译配置。tsconfig.json 就是用来配置编译 Typescript 的特定选项。

常见报错处理

wx 报错问题

解决方案有两种

  1. 安装定义文件

    npm install @types/wechat-miniprogram
    
  2. 安装独立的 npm 包

    npm install miniprogram-api-typings
    

    安装后需要在使用的地方或者根目录手动导入:
    import 'miniprogram-api-typings';

    或者在 tsconfig.json 中添加一下配置:

    "compilerOptions": {
        "types": ["miniprogram-api-typings"]
    }
    

promise 报错问题

promise 报错是由于 tsconfig.json 中的 js 目标版本问题,将目标版本改为 ES2016 及以上版本即可解决:

"compilerOptions": {
    "target": "ES2017",
}
上一篇 下一篇

猜你喜欢

热点阅读