互联网技术 · 2024年3月3日

使用TypeScript编写微信小程序的项目创建方法

这篇文章主要介绍了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都支持

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编写微信小程序创建项目的方法的文章就介绍到这了

OpenMagic API

Need more than content? Move into the product flow.

If you are here for model access, pricing, developer docs, or the future API console, the dedicated product path now lives on api.openmagic.ai.

登录免费注册