使用 Trae 快速上手微信小程序开发

笔者最近需要为孩子班级开发一款小程序,用来统计孩子们每周的操行分数。

笔者只有后端开发经验,对于微信小程序的开发是一窍不通的。但是没关系,有了 Trae 的帮助,我们可以快速打破现有的技术壁垒,快速上手未知的技术领域。

我们下载好微信开发者工具,利用向导生成一个 Hello World 小程序。笔者觉得微信开发者工具使用体验远远逊于 Trae 啊,外接显示器时整个 IDE 的缩放老是有问题。

所以使用微信开发者工具创建完第一个 Hello World 的微信小程序后,我就把它抛弃了。打开 Trae,使用 Open Folder 功能,打开整个文件夹,发现有个 typings 文件夹,下面有很多 .d.ts 文件。

我询问了 Trae,这些 .d.ts 文件拿来干嘛的?Trae 耐心地解释:

在微信小程序项目中,typings 文件夹用于存放 TypeScript 的类型定义文件,它们为微信小程序的 API 和组件提供类型声明。这些文件通常来自以下几个来源:

  1. 微信官方提供的类型定义包(@types/wechat-miniprogram)
  2. 项目初始化时自动生成
  3. 开发者手动添加的自定义类型定义

这些类型定义文件(.d.ts)不会被编译到最终代码中,但它们在开发过程中为 TypeScript 编译器和 IDE 提供类型检查和代码补全功能,使开发更加高效和减少错误。从您项目中的文件可以看出,这些定义文件包含了微信小程序的组件、API、行为等类型定义。

有了理论基础,下面开始动手开发。 发出指令:

对这个微信小程序的代码进行修改,在小程序界面上随机出一道100以内的加减法口算题,提供一个输入框,让用户输入答案。如果用户答案正确,显示"恭喜你!".

如果用户答案错误,显示:"正确答案是:",并显示这道题的正确答案。

我觉得 Trae 对程序员比较有帮助的一点是,我们发出需求后,它会把如何实现这个需求的分析过程也显示出来,方便我们学习。

因为现在我对微信小程序开发还一窍不通,只有直接点击Accept All,看看 Trae 帮助我做了哪些修改:

点了 Accept 按钮之后,回到微信开发者工具进行预览,发现一次成功了,Trae 真的是太强了:

答对的情况:

答错的情况:

我学习了一下 Trae 生成的代码,在 Calc.js 的 Page 构造函数里,传递了一个巨大的 JSON 对象进去,这个对象里除了 data,onLoad 这些标准属性外,还有一个自定义函数 generateQuestion 负责生成随机题目。

并且在 app.json 里,自动将 calc 视图放在了 pages 数组的第一个位置,这样就将其设置成了首页。

Trae 还强调了 app.ts 里 App 构造函数的参数定义,对于我这个 Java 开发人员来说,这些类型安全的语言设计理解起来没有任何难度。

这段 TypeScript 代码:

typescript 复制代码
type Instance<T extends IAnyObject> = Option & T
    type Options<T extends IAnyObject> = Partial<Option> &
        T &
        ThisType<Instance<T>>

Instance<T extends IAnyObject> = Option & T 定义了小程序App实例的类型,它是Option接口(包含生命周期函数如onLaunch、onShow等)与泛型T的交叉类型。这意味着App实例不仅包含标准的生命周期方法,还可以包含开发者自定义的属性和方法。

Options<T extends IAnyObject> = Partial<Option> & T & ThisType<Instance<T>> 定义了创建App时传入的配置对象类型。这里有三个关键点:1)Partial<Option> 表示生命周期方法是可选的;2) 与泛型T的交叉使开发者可以添加自定义属性;3)ThisType<Instance<T>> 是TypeScript的特殊工具类型,它指定了配置对象中方法的this上下文类型,确保在方法内部可以正确访问App实例的所有属性和方法。

这种设计使微信小程序的App构造函数既保持了类型安全,又提供了足够的灵活性,允许开发者扩展App实例的功能。通过泛型和交叉类型的组合,实现了类型系统的可扩展性和代码提示的准确性,是TypeScript高级类型系统应用的典型案例。

相关推荐
kuaile090612 分钟前
DeepSeek 与开源:肥沃土壤孕育 AI 硕果
人工智能·ai·gitee·开源·deepseek
飞火流星020272 小时前
BERT、T5、ViT 和 GPT-3 架构概述及代表性应用
人工智能·gpt-3·bert·t5·vit·人工智能模型架构
程序小K2 小时前
自然语言处理Hugging Face Transformers
人工智能·自然语言处理
恒拓高科WorkPlus2 小时前
BeeWorks:打造安全可控的企业内网即时通讯平台
大数据·人工智能·安全
newxtc3 小时前
【指纹浏览器系列-chromium编译】
人工智能·安全
轻闲一号机3 小时前
【机器学习】机器学习笔记
人工智能·笔记·机器学习
光锥智能3 小时前
傅利叶发布首款开源人形机器人N1:开发者可实现完整复刻
人工智能
恒拓高科WorkPlus3 小时前
一款安全好用的企业即时通讯平台,支持统一门户
大数据·人工智能·安全
天下琴川3 小时前
Dify智能体平台源码二次开发笔记(5) - 多租户的SAAS版实现(2)
人工智能·笔记
qq_365911604 小时前
中英文提示词对AI IDE编程能力影响有多大?
人工智能