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 相关文章推荐
jQuery1.3.2 升级到jQuery1.4.4需要修改的地方
Jan 06 Javascript
详解JavaScript中的blink()方法的使用
Jun 08 Javascript
Javascript的表单验证-初识正则表达式
Mar 18 Javascript
通过jquery-ui中的sortable来实现拖拽排序的简单实例
May 24 Javascript
jQuery 局部div刷新和全局刷新方法总结
Oct 05 Javascript
解决拦截器对ajax请求的拦截实例详解
Dec 21 Javascript
js选项卡的制作方法
Jan 23 Javascript
使用node.js搭建服务器
May 20 Javascript
解决Vue中mounted钩子函数获取节点高度出错问题
May 18 Javascript
详解Vue基于vue-quill-editor富文本编辑器使用心得
Jan 03 Javascript
详解auto-vue-file:一个自动创建vue组件的包
Apr 26 Javascript
探索浏览器页面关闭window.close()的使用详解
Aug 21 Javascript
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
SONY ICF-F10中波修复记
2021/03/02 无线电
Apache, PHP在Windows 9x/NT下的安装与配置 (一)
2006/10/09 PHP
php 日期时间处理函数小结
2009/12/18 PHP
PHP+SQL 注入攻击的技术实现以及预防办法
2010/12/29 PHP
php网页标题中文乱码的有效解决方法
2014/03/05 PHP
在IIS下安装PHP扩展的方法(超简单)
2017/04/10 PHP
js获取TreeView控件选中节点的Text和Value值的方法
2012/11/24 Javascript
js中创建对象的几种方式示例介绍
2014/01/26 Javascript
浅谈jQuery事件绑定原理
2015/01/02 Javascript
JavaScript中的Math.E属性使用详解
2015/06/12 Javascript
JS字符串的切分用法实例
2016/02/22 Javascript
jQuery+CSS实现简单切换菜单示例
2016/07/27 Javascript
深入理解Javascript中的valueOf与toString
2017/01/04 Javascript
Node.js和Express简单入门介绍
2017/03/24 Javascript
浅谈如何使用webpack构建多页面应用
2018/05/30 Javascript
基于VUE实现的九宫格抽奖功能
2018/09/30 Javascript
Node.js Buffer模块功能及常用方法实例分析
2019/01/05 Javascript
微信小程序设置全局请求URL及封装wx.request请求操作示例
2019/04/02 Javascript
基于Vue实现的多条件筛选功能的详解(类似京东和淘宝功能)
2019/05/07 Javascript
JS字符串常用操作方法实例小结
2019/06/24 Javascript
WEEX环境搭建与入门详解
2019/10/16 Javascript
js简单粗暴的发布订阅示例代码
2021/01/23 Javascript
Python中的迭代器与生成器高级用法解析
2016/06/28 Python
利用Tkinter(python3.6)实现一个简单计算器
2017/12/21 Python
python RabbitMQ 使用详细介绍(小结)
2018/11/08 Python
对pandas中时间窗函数rolling的使用详解
2018/11/28 Python
使用Python计算玩彩票赢钱概率
2019/06/26 Python
python datetime中strptime用法详解
2019/08/29 Python
CSS3 box-sizing属性
2009/04/17 HTML / CSS
波兰在线儿童和婴儿用品零售商:pinkorblue
2019/06/29 全球购物
某集团股份有限公司委托书样本
2014/09/24 职场文书
工作期间打牌检讨书范文
2014/11/20 职场文书
2015教师见习期工作总结
2014/12/12 职场文书
导游词之广西漓江
2019/11/02 职场文书
JavaScript实现外溢动态爱心的效果的示例代码
2022/03/21 Javascript
Java8 CompletableFuture 异步回调
2022/04/28 Java/Android