加入收藏 | 设为首页 | 会员中心 | 我要投稿 焦作站长网 (https://www.0391zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 动态 > 正文

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

发布时间:2021-10-12 10:27:10 所属栏目:动态 来源:互联网
导读:这篇文章主要介绍了typescript编写微信小程序创建项目的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下 创建

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

 

编辑 package.json 文件,修改 miniprogram-api-typings 和 typescript 版本

 

{

"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 中返回了 PromisifySuccessResultPromisifySuccessResult 返回了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都支持

(编辑:焦作站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读