TypeScript

TypeScript 是一种由微软开发的自由和开源的编程语言。它是 JavaScript 的一个超集,向这个语言添加了可选的静态类型,在大型项目里非常有用。

ThinkJS 3.2 开始支持了创建 TypeScript 类型的项目,并且开发时会自动编译、自动更新,无需手工编译等复杂的操作。如果希望了解更多实现细节,请参考 ThinkJS 3.0 如何实现对 TypeScript 的支持

创建 TypeScript 项目

think-cli 版本 2.1.1 以后可以以下命令来创建 TypeScript 项目:

  1. thinkjs new project-name typescript

引入 Extend 模块定义

用 think-cli 生成 TypeScript 项目模板之后(下文统称项目模板),会自动生成 src/index.ts 文件, 在这里需要配置项目用到了哪些 Extend 模块,这样 TS 的智能感知才会生效。

  1. import * as ThinkJS from '../node_modules/thinkjs';
  2. // 项目 Extend 模块
  3. import './extend/controller';
  4. import './extend/logic';
  5. import './extend/context';
  6. import './extend/think';
  7. import './extend/service';
  8. import './extend/application';
  9. import './extend/request';
  10. import './extend/response';
  11. // 外部 Extend 模块
  12. import 'think-view';
  13. import 'think-model';
  14. import 'think-i18n';
  15. // 更多 extend 模块 参考 [think-awesome](https://github.com/thinkjs/think-awesome)
  16. export const think = ThinkJS.think;

获取 model 和 service 类型

  1. // in controller
  2. import { think } from 'thinkjs';
  3. import SomeService from '../service/someservice';
  4. import SomeModel from '../model/somemodel';
  5. export default class extends think.Controller {
  6. indexAction() {
  7. const serviceInstance = think.service('someservice') as SomeService;
  8. const modelInstance = think.model('somemodel') as SomeModel;
  9. }
  10. }

TSLint

TypeScript 的项目编写风格与 JavaScript 的非常接近,只要经过一段时间的上手就能适应。我们还基于 ThinkJS 项目的特点配置了一套 TSLint 的规则包含在项目模板里。使用 TSLint 能更快速的在团队里实施规范,并保护代码。

编译部署

在开发环境可以使用 think-typescript 编译,还支持 tsc 直接编译, 编译后的代码和 JS 版本是通用的。

原文: https://thinkjs.org/zh-cn/doc/3.0/typescript.html