前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用Typescript开发node.js项目

使用Typescript开发node.js项目

作者头像
lilugirl
发布2019-05-28 16:43:52
2.5K0
发布2019-05-28 16:43:52
举报
文章被收录于专栏:前端导学前端导学

创建项目

代码语言:javascript
复制
npm init

安装相应的库

代码语言:javascript
复制
npm install --save-dev typescript

npm install --save-dev nodemon

npm install --save-dev ts-node

npm install --save-dev @types/koa


npm install --save koa

package.json内容差不多如下

代码语言:javascript
复制
{
  "name": "learn-ts",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "dev": "nodemon -x ts-node --inspect app.ts",
    "start": "node dist/app.js",
    "build": "tsc "
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "@types/koa": "^2.0.46",
    "nodemon": "^1.17.5",
    "ts-node": "^6.1.0",
    "typescript": "^2.9.1"
  },
  "dependencies": {
    "koa": "^2.5.1"
  }
}

生成tsconfig.json文件

代码语言:javascript
复制
tsc --init

tsconfig.json文件设置如下

代码语言:javascript
复制
{
  "compilerOptions": {
    "outDir": "./dist/",
    "module": "commonjs",
    "noImplicitAny": true,
    "preserveConstEnums": true,
    "sourceMap": true,
    "target": "es5",
    "allowJs": true
  }
}

在根目录下创建 app.ts文件

代码语言:javascript
复制
import * as Koa from 'koa'

const app = new Koa()

app.use(ctx => {
  ctx.body = 'xiadd'
})

app.listen(8002, () => {
  console.log('server is running')
})

输入命令进行编译和运行

代码语言:javascript
复制
npm run build

npm run start

也可以创建run.sh文件 将运行命令写入该文件

代码语言:javascript
复制
nodemon --ext js,ts --exec ts-node dist/app

运行run.sh命令

代码语言:javascript
复制
./run.sh

Typescript特点

typescript 通过构造函数的参数直接定义属性,为了证明,我们创建一个info.ts文件 内容如下

代码语言:javascript
复制
class info{
    constructor(public name:string,private password:string,email:string){
    }
}

使用tsc info.ts进行编译后 生成info.js

代码语言:javascript
复制
var info = /** @class */ (function () {
    function info(name, password, email) {
        this.name = name;
        this.password = password;
    }
    return info;
}());

值得注意的是,构造函数的参数需要指明为public或者private ,参数才会默认成为属性。

github地址 https://github.com/lilugirl/learn-ts

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档