应用目录结构
虽然 Typescript 的目录多种多样,但是在统一的编码规范中,我们推荐常用的一种,这里就简单介绍我们常见的目录以及文件。
├── app
├── README.md
├── .gitignore
├── package.json
├── src
├── dist
├── test
├── tsconfig.json
└── tslint.json
最常见的目录结构如下,我们一一来介绍。
ts 依赖
在介绍目录之前,我们先介绍应用需要安装的依赖,这些依赖已经作为默认内容在脚手架中提供。
// in package.json
"devDependencies": {
"@types/mocha": "^5.2.5",
"@types/node": "^10.5.5",
"ts-node": "^7.0.1",
"tslint": "^5.9.1",
"typescript": "^2.8.0"
}
这里的依赖有两部分,@types/*
开头的定义文件和其他 ts 运行时需要的文件。
- @types/node - Node.js 的定义包,有了它原生内置的模块就有了类型定义,@types/mocha 同理
- typescript - 微软提供的 ts 核心包,提供了高阶的语法糖支持,同时也提供了 tsc 等编译器。
- ts-node - 三方提供的运行环境,由于 js 运行无需编译,只需要
node index.js
即可运行,同理,可以用ts-node index.ts
来直接运行 ts,方便开发
src 和 dist
由于 Typescript 是编译过程中进行类型检查,虽然在开发过程中可以通过类似 ts-node 这样的模块来简化,但是最终应用部署前,还是需要打包编译的,midway 提供了 midway-bin build
命令进行编译,这一内容将在工具部分来提供。
src
目录存放 Typescript 源文件,Typescript 源文件由 *.ts
结尾,而编译后的文件为 *.js
,在一般情况下,和源文件一一对应。
tsconfig.json 文件
这是 Typescript 的核心配置文件,一般在应用根目录,里面的配置项一般是都是指定编译环境。
比如:
{
"compilerOptions": {
"target": "ES2017",
"module": "commonjs",
"moduleResolution": "node",
"experimentalDecorators": true,
"noImplicitThis": true,
"noUnusedLocals": true,
"stripInternal": true,
"pretty": true,
"declaration": true,
"sourceMap": true,
"outDir": "dist",
"lib": ["es2017", "dom"]
},
"exclude": [
"dist",
"node_modules",
"test"
]
}
experimentalDecorators
就是用来表示是否启用装饰器,noUnusedLocals
表示是否存在没有使用的本地变量编译时报错,这些配置信息都可以在 这里 查询到。
tslint.json
Tslint 对应于 Eslint 或者 Jslint,用于在不同时期进行检查,这里的配置也和 Eslint 非常相似。
比如有一些规则,每条有对应了不同的内容,比如使用单引号,不允许 var
关键字等,如果觉得开发习惯不同,可以根据 官方规则 进行调整。
如果你想知道 Tslint 有什么区别,可以查看 这篇文章