• 分类:【Nodejs
  • 浏览【1287】
  • 评论【0】
  • 更新【2017-10-28 23:28:40】

从图片中的代码可以看出 let userRecord = await item.getUser();获取到的是Bluebird<UserInstance | null>类型,然后在下面获取对象属性的时候报错,错误信息是: [ts] Object is possibly 'null'. let userRecord: UserInstance | null 说对象可能是null,所以无法获取其中的属性。遇到这种情况请设置typescript的编译选项,tsconfig.json文件中的 "strictNullChecks": true,

阅读全文
  • 分类:【Nodejs
  • 浏览【1390】
  • 评论【0】
  • 更新【2017-5-17 22:31:08】

nodejs中promise的if流程控制 Promise虽然解决了原生回调的金字塔写法,但是并不能很好的处理if else流程,相比起Java等同步方式编写还是有点难度,不过还是有方法写出优雅的代码。 下面用了一个不复杂的例子来说明: 假设一个人去银行开户,存钱,如果这个人是普通用户,需要先1.排队等候,2.开户,3.存钱。 如果是VIP用户,直接进行第2,3步操作。 如果普通用户是黑名单用户不给开户办卡。 var fs = require("fs"); function queue(){ return new Promise((resolve, reject)=>{ fs.re

阅读全文
  • 分类:【Nodejs
  • 浏览【1838】
  • 评论【0】
  • 更新【2017-5-05 23:01:39】

typescript(以下简称ts)中泛型如何使用?(以下代码为ts书写) 个人认为开发语言中一些高级特性如果在不太理解的情况下不使用也无妨,无非是代码写的多一点,烂一点。但是我想作为程序猿大家还是会有所追求的。就以泛型来说,不使用也能正常开发,只不过在个别情况下需要写几份看起来相同的代码。比如在不使用泛型的情况下要求函数参数为number类型,并且返回number。 function a(args: number ): number { return args; } console.log(a(123)); 又有另外一个要求,参数为string类型,并且返回string function

阅读全文
  • 分类:【Nodejs
  • 浏览【2270】
  • 评论【0】
  • 更新【2017-4-20 22:14:02】

node_modules/nodemailer/node_modules/socks/node_modules/smart-buffer/typings/index.d.ts(351,5): error TS7010: 'skipTo', which lacks return-type annotation, implicitly has an 'any' return type. 缺少返回类型的注释,隐含地具有'any'返回类型。 tsconfig.json配置文件中noImplicitAny设置为false,该选项的意思是:在表达式和声明上有隐含的'any'类型时报错。

阅读全文
  • 分类:【Nodejs
  • 浏览【1786】
  • 评论【0】
  • 更新【2016-11-10 17:30:27】

完成了最基本的项目框架以后就是配置编辑器和编译选项,在没有特别配置的情况下,根目录下执行tsc会在ts后缀文件同级目录下生成js后缀的文件, 这样也没什么不可以,但是在编辑器列表中看着有点混乱,生成的js文件是不建议直接修改的,就算修改了下次修改ts文件编译后也会重置文件内容。 所以还是单独有个文件夹存放生成的js文件,这时就要配置tsconfig.json文件了。tsconfig.json文件可以通过tsc --init命令生成,自动生成内容比较简单,是可以直接使用的。 以下的配置是经过一些特别需求配置的,可以直接复制一下内容到tsconfig.json文件中,然后根据自己的需求加减内容。

阅读全文
  • 分类:【Nodejs
  • 浏览【2628】
  • 评论【0】
  • 更新【2016-10-16 21:03:51】

ES6引入了类的概念,同时也引入了类似于java的注解概念,我们称之为装饰器,用于在某些场景下修改类和类成员。typescript要支持装饰器需要手动开启experimentalDecorators。 命令行编译 tsc --target ES5 --experimentalDecorators /test.ts tsconfig.json: "compilerOptions": { "experimentalDecorators": true } } 那么这个装饰器到底什么原理呢?它是什么时候执行的?用下面代码为例: //test.ts class Rou

阅读全文
  • 分类:【Nodejs
  • 浏览【3856】
  • 评论【0】
  • 更新【2016-10-11 22:19:52】

在一切开始之前先具备的开发环境: nodejs4.0+ 推荐的开发工具vscode 我希望通过本文介绍能直接做出一个最简单的项目框架,以便日后参考,这也是我想把之前纯nodejs写的博用typescript客重写一遍。 还是以expressjs为框架来搭建 使用express-generator来生成项目基本框架,需要全局安装 npm install -g express-generator express -e mpro 参数-e是以ejs为模板引擎,mpor为项目目录名,最后生成这样的目录结构: . ├── app.js ├── bin │ └── www ├─

阅读全文
  • 分类:【Nodejs
  • 浏览【2525】
  • 评论【0】
  • 更新【2016-10-10 21:52:49】

初识TypeScript 从入职新公司开始算,使用typescript已经有半年多了,这是一个创业公司使用nodejs开发的后台业务管理系统,已经做的很大了,支撑着公司每月千万人民币的业务处理。很多怀疑nodejs是否可以开发后台管理,作为一个过来人告诉你可以放心使用,现在的javascript早已不是10年前用来写前端特效的js了。美中不足的是nodejs对报表这类数据处理量较大的功能有点力不从心,经常拖垮系统,当然也不是完全不能用nodejs来处理报表,可以合理的使用子进程单独处理数据而不影响主进程。但还是不推荐。 使用感受 其实起初对于typescript开发nodejs我是拒绝的,原因

阅读全文