QiaoranC 2019-06-28
在调整typescript项目结构,全局变量尽量少用,但还是必不可少的,既要合理的引入,又要能用上vscode的智能提示。上篇日志已经记录了,在vscode中开发,全局变量的定义与声名是分开的,要做好对应。
├── src │ ├── app.ts │ ├── common │ │ └── globUtils.ts │ ├── config │ │ └── log4js.ts │ ├── globals.d.ts │ ├── index.ts │ └── inits │ ├── global.ts │ └── tasks.ts ├── tsconfig.json ├── tslint.json
export default class GlobUtils { isDev() { return global.NODE_ENV !== 'prod' } }
注意事项:
import * as lodash from 'lodash' import * as Bluebird from 'bluebird' import GlobUtils from '../common/globUtils' export default { async init() { Object.assign(global, { ROOT_PATH: process.cwd(), NODE_ENV: process.env.NODE_ENV || 'dev', //dev - 开发; prod - 生产; test - 测试; Promise: Bluebird, __: lodash, globUtils: new GlobUtils(), }) } }
注意事项:
import { Logger } from 'log4js' import GlobUtils from './common/globUtils' import * as lodash from 'lodash' type LODASH = typeof lodash declare global { namespace NodeJS { interface Global { logger: Logger, NODE_ENV: string, ROOT_PATH: string, globUtils: GlobUtils, __: LODASH, } } }
注意事项:
用@types/bluebird-global替换@types/bluebird,即可完成替换。我们只需要在代码定义中增加它的定义就好了。
注意事项:
代码是这个项目的基础,此项目我准备将express+mysql的成功经验移植到koa2中来。
https://github.com/zhoutk/gels
git clone https://github.com/zhoutk/gels cd gels git checkout 9ea084f yarn tsc -w 用vscode打开项目,并按F5运行
终于迈入typescript坑中,痛并快乐着!
运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。以上实例中 7、5 和 12 是操作数。关系运算符用于计算结果是否为 true 或者 false。逻辑运算符用于测定变量或值之间的逻辑。