千家信息网

ThinkJS2.1支持TypeScript的示例分析

发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,这篇文章主要为大家展示了"ThinkJS2.1支持TypeScript的示例分析",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"ThinkJS2.1支持Ty
千家信息网最后更新 2025年01月21日ThinkJS2.1支持TypeScript的示例分析

这篇文章主要为大家展示了"ThinkJS2.1支持TypeScript的示例分析",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"ThinkJS2.1支持TypeScript的示例分析"这篇文章吧。

一:支持TypeScript

TypeScript 是一种由微软开发的自由和开源的编程语言。它是 JavaScript 的一个超集,向这个语言添加了可选的静态类型,在大型项目里非常有用。ThinkJS 2.1 开始支持了创建 TypeScript 类型的项目,并且开发时会自动编译、自动更新,无需手工编译等复杂的操作。细则如下:

1、创建 TypeScript 项目

2、.d.ts 文件

3、已有项目升级为 TypeScript 项目

  • 修改入口文件

  • 修改 package.json

  • 修改 .thinkjsrc

  • 下载 think.d.ts 描述文件

  • 修改文件后缀

  • 项目文件里添加描述文件

二:性能提升

评价一个框架是否出色,一方面看支持的功能,另一方面也要看性能。虽然 ThinkJS 更适合大型项目,功能和复杂度远远超过 Express 和 Koa,但性能上并不比 Express 和 Koa 逊色多少,具体的测试数据请见下图。

注:以上数据使用分布式压力测试系统测试。

从上图中测试数据可以看到,虽然 ThinkJS 比 Express 和 Koa 性能要差一些,但差别并不大。ThinkJS 和 Sails.js 都更符合大型项目,但 ThinkJS 的性能要比 Sails.js 高很多。

具体测试代码请见:https://github.com/thinkjs-team/thinkjs-performance-test,可以下载代码在本机测试,如果使用 ab 测试工具,请注意该工具在 Mac 系统下很不稳定,多次测试结果会相差很大。

三:更多特性

ThinkJS 2.1版本除了上述两个较为突出的特性以外,更多特性如下:

  • Controller 支持子目录的形式

  • 支持 PostgreSQL 数据库

  • Model schema 支持默认值

  • Hook 里的 middleware 返回 null 可以阻止后续的 middleware 执行

  • http 和 controller 添加 display 的别名方法 render

  • 添加串行执行方法 think.waterfall

  • Validate 支持正则

  • fetch 支持传数据

  • Logic 支持判断请求类型

  • 定时任务里支持直接调用 action

  • Babel 升级到 6

  • 国际化语言对大小写不再敏感

  • 将获取模板文件内容改为异步

  • http 对象不在继承自 EventEmitter 类

  • 去除 think.mode_mini 模式,controller 支持子目录

  • 数据库配置 name 改为 database

  • 修改现在的 fields 为 schema

  • 数据库配置 pwd 改为 password

  • 优化 http 对象生成方式,不用每次都复制

  • 过滤 .svn, .git 等隐藏类型的文件

  • 将文件 bin/index.js 移动为 src/command.js

  • runtime 目录移动到项目根目录下,添加 think.RUNTIME_PATH 路径常量

  • adapter type 增加自动转为小写的功能,并给出提示

  • 增加 thinkData,用于缓存系统常用数据

  • 合并 think.locale 和 controller.locale 方法

  • 修复 nunjucks 模板继承文件找不到的问题

  • 修复 pathname 里含有转义的 / 导致识别错误的问题

  • 修复 http.file 方法返回的数据遭到修改导致源数据也修改的问题

  • 修复路径中 / 在 windows 下需要替换为 \\ 的问题

  • 修复 nunjucks 下模板文件在不在根目录导致报错的问题

  • 修复 production 环境下,页面上可能输出敏感数据的问题

  • 修复 development 模式下,JSON 数据解析失败后没有报错信息不好定位的问题

  • 修复 view root_path 修改后,创建模块时视图路径没更新的问题

  • 修复 required|int 规则校验不正确的问题

  • 修复 redis cache 解析配置的问题

  • 修复 REST API 不支持 logic 的问题

  • 修复 count 方法如果传入字段名是关键字会出错的问题

以上是"ThinkJS2.1支持TypeScript的示例分析"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

支持 数据 问题 文件 项目 测试 性能 方法 内容 类型 示例 分析 功能 数据库 更多 模板 特性 篇文章 系统 语言 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 无锡软件开发互惠互利 河北现代化软件开发密度 摩宝网络技术 数据库重装不删注册表有什么影响 腾越互联网科技 安卓软件开发体会 医院网络安全信息系统安全 信息网络安全论文1500字 数据库修改数据长度限制 c 数据库线程安全 苹果手机激活连不到服务器 深圳2011服务器散热器哪家好 网络安全监测不包括哪些 工业串口服务器和交换机 网络安全运维工作前景 达梦数据库对比两个表的不同 软件开发成本的核算方法包括 网络安全法依法惩治利用网络 国家网络技术水平考试二级 用友数据库访问方法 服务器能启动但检测不到磁盘 app软件开发如何选择 方舟服务器自己怎么搭建 数据库字段拼接 c 民生网上银行服务器认证失败 虚拟机如何发布网站到服务器 易联网络技术 上海软件开发怎么自学 数控机床软件开发很难吗 网络服务器根据什么可分为
0