typescript编写微信小程序创建项目的方法


Posted in Javascript onJanuary 29, 2021

创建项目

在微信开发者工具创建项目,在语言中选择 TypeScript

改造项目

编辑 package.json 文件,修改 miniprogram-api-typingstypescript 版本

{
 "name": "miniprogram-ts-quickstart",
 "version": "1.0.0",
 "description": "",
 "scripts": {
 "compile": "./node_modules/typescript/bin/tsc",
 "tsc": "node ./node_modules/typescript/lib/tsc.js"
 },
 "keywords": [],
 "author": "",
 "license": "",
 "dependencies": {
 },
 "devDependencies": {
 "typescript": "^4.1.3",
 "miniprogram-api-typings": "^2.12.1-beta.0"
 }
}

编辑 tsconfig.json 文件, 修改 lib 为 ["esnext"],支持最新语法, 删除 typeRoots 配置项

{
 "compilerOptions": {
 "strictNullChecks": true,
 "noImplicitAny": true,
 "module": "CommonJS",
 "target": "ES5",
 "allowJs": false,
 "experimentalDecorators": true,
 "noImplicitThis": true,
 "noImplicitReturns": true,
 "alwaysStrict": true,
 "inlineSourceMap": true,
 "inlineSources": true,
 "noFallthroughCasesInSwitch": true,
 "noUnusedLocals": true,
 "noUnusedParameters": true,
 "strict": true,
 "removeComments": true,
 "pretty": true,
 "strictPropertyInitialization": true,
 "lib": ["esnext"]
 },
 "include": [
 "./**/*.ts"
 ],
 "exclude": [
 "node_modules"
 ]
}

执行 npm install

删除项目下 typings 目录, 的 复制 node_modules 下 miniprogram-api-typings 的 types 文件到项目根目录

在 miniprogram 下创建 interface 目录并创建 IAppOption.ts 文件,最后编辑 app.ts 文件,

// IAppOption.ts
export default interface IAppOption {
 globalData: {
  text: string;
 }
}
// app.ts
import IAppOption from "./interface/IAppOption";

App<IAppOption>({
 globalData: {
  text: "Hello,Word!"
 },
 onLaunch() {
 }
})

在 详细 -> 本地设置 -> 调试基础库,直接选择最新的

使用 Promise 化的微信小程序api

以前可以通过 miniprogram-api-promise 这个包来完成 api Promise 化,或者自己写

现在可以直接使用,比如 wx.getStorageInfo ,在 lib.wx.api.d.ts 中返回了 PromisifySuccessResult

PromisifySuccessResult 返回了Promise

getStorageInfo<TOption extends GetStorageInfoOption>(
option?: TOption
): PromisifySuccessResult<TOption, GetStorageInfoOption>

type PromisifySuccessResult<
P,
 T extends AsyncMethodOptionLike
> = P extends { success: any }
 ? void
 : P extends { fail: any }
 ? void
 : P extends { complete: any }
 ? void
 : Promise<Parameters<Exclude<T['success'], undefined>>[0]>

两种用法,大多数api都支持

wx.getStorageInfo({
 success: () => {
  console.log('成功执行')
 },
 fail: () => {
  console.log('失败执行')
 },
 complete: () => {
  console.log('接口调用结束')
 }
})
wx.getStorageInfo().then(() => {
 console.log('成功执行')
}).catch(() => {
 console.log('失败执行')
}).finally(() => {
 console.log('接口调用结束')
})

源码: https://github.com/NikolasSky/ts-miniprogram/tree/master/ts-miniprogram-base

到此这篇关于typescript编写微信小程序创建项目的方法的文章就介绍到这了,更多相关typescript开发微信小程序内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
javascript 学习笔记(onchange等)
Nov 14 Javascript
jQuery 仿百度输入标签插件附效果图
Jul 04 Javascript
js解决select下拉选不中问题
Oct 14 Javascript
jQuery基于ajax()使用serialize()提交form数据的方法
Dec 08 Javascript
JQuery实现的按钮倒计时效果
Dec 23 Javascript
基于JavaScript实现网页倒计时自动跳转代码
Dec 28 Javascript
JavaScript的字符串方法汇总
Jul 31 Javascript
JavaScript给每一个li节点绑定点击事件的实现方法
Dec 01 Javascript
vue之数据交互实例代码
Jun 20 Javascript
如何让node运行es6模块文件及其原理详解
Dec 11 Javascript
微信小程序如何获取地址
Dec 24 Javascript
vue中的可拖拽宽度div的实现示例
Apr 08 Vue.js
js实现碰撞检测
Jan 29 #Javascript
jQuery使用hide()、toggle()函数实现相机品牌展示隐藏功能
Jan 29 #jQuery
vue穿梭框实现上下移动
Jan 29 #Vue.js
arcgis.js控制地图地体的显示范围超出区域自动弹回(实现思路)
Jan 28 #Javascript
vue使用transition组件动画效果的实例代码
Jan 28 #Vue.js
Bootstrap FileInput实现图片上传功能
Jan 28 #Javascript
js实现简单的倒计时
Jan 28 #Javascript
You might like
php 读取shell管道传输过来的内容
2010/03/01 PHP
PHP Ajax JavaScript Json获取天气信息实现代码
2016/08/17 PHP
PHP设计模式之工厂模式与单例模式
2016/09/28 PHP
Jquery 高亮显示文本中重要的关键字
2009/12/24 Javascript
jQuery结合Json提交数据到Webservice,并接收从Webservice返回的Json数据
2011/02/18 Javascript
javascript如何创建表格(javascript绘制表格的二种方法)
2013/12/10 Javascript
JavaScript 获取任一float型小数点后两位的小数
2014/06/30 Javascript
js分页工具实例
2015/01/28 Javascript
jQuery实现购物车数字加减效果
2015/03/14 Javascript
Bootstrap输入框组件简单实现代码
2017/03/06 Javascript
Angular客户端请求Rest服务跨域问题的解决方法
2017/09/19 Javascript
原生js实现日历效果
2020/03/02 Javascript
[05:34]2014DOTA2国际邀请赛中国区预选赛精彩TOPPLAY第二弹
2014/06/25 DOTA
[02:16]2018年度CS GO最具人气选手-完美盛典
2018/12/16 DOTA
Ubuntu下创建虚拟独立的Python环境全过程
2017/02/10 Python
一个基于flask的web应用诞生 组织结构调整(7)
2017/04/11 Python
使用Python实现博客上进行自动翻页
2017/08/23 Python
python对Excel按条件进行内容补充(推荐)
2019/11/24 Python
浅谈tensorflow中Dataset图片的批量读取及维度的操作详解
2020/01/20 Python
Python判断字符串是否为空和null方法实例
2020/04/26 Python
python实现mean-shift聚类算法
2020/06/10 Python
Python图像处理二值化方法实例汇总
2020/07/24 Python
python二维图制作的实例代码
2020/12/03 Python
六道php面试题附答案
2014/06/05 面试题
员工三分钟演讲稿
2014/08/19 职场文书
地理信息科学专业推荐信
2014/09/08 职场文书
党员教师四风问题对照检查材料
2014/09/26 职场文书
2014年老干部工作总结
2014/11/21 职场文书
贷款担保书
2015/01/20 职场文书
幼师辞职信范文
2015/02/27 职场文书
银行求职自荐信范文
2015/03/04 职场文书
教务处干事工作总结
2015/08/14 职场文书
区域销售大会开幕词
2016/03/04 职场文书
Python趣味挑战之给幼儿园弟弟生成1000道算术题
2021/05/28 Python
python百行代码实现汉服圈图片爬取
2021/11/23 Python