注:本文的读者,假定你对typescript和nodejs有一个初步的了解:知道如何安装npm包,如何运行node代码,以及tsc是干什么的。代码提示安装@types/node库文件,编辑器在写代码时会智能提示。npminstall@types/node-D作用:此时编辑器仍然会提示一些浏览器环境的API,比如window对象。这是因为tsconfig.json配置文件中的compilerOptions.lib默认值包含了DOM库。根据需要配置所需的库以覆盖默认值。(库列表见https://www.typescriptlang.or...){"compilerOptions":{"lib":["ES6"]}}expressjs因为我主要用express,所以看官方文档快递的使用。这里只是一些使用typescript和express一起使用的细节。npminstall@types/express-D安装express的接口描述文件。原来js中commonjs的写法:constexpress=require("express")constapp=express()转换成ts中esm的写法:import*asexpressfrom"express"constapp=express()express-sessionmyexpress项目使用express-session实现用户登录状态的功能。该库的具体使用方法请参考该库的官方文档。这里主要展示ts的相关用法。安装库的描述文件:npminstall@types/express-session-D使用:文档给出的import用法是这样的:varsession=require('express-session'),那么对应的esm用法是这样的this:import*assessionfrom'express-session'根据官方文档中的例子,用户登录后,将用户信息绑定到req.session的用户属性中。在ts中使用会提示这个错误。这个时候我们需要告诉editor/Compiler,req.session上有这个属性。在项目中添加types.d.ts文件,内容如下:import"express-session"declaremodule"express-session"{interfaceSessionData{user:{name:string,age:number}//givereq.session.user}}这样就可以正常使用了。debug在tsconfig.json文件中调试设置compilerOptions.sourceMap为true:{"compilerOptions":{..."sourceMap":true,"lib":["ES6"],...}}创建.vscode/launch.json文件,内容如下:{//使用智能感知了解相关属性。//悬停以查看现有属性的描述。//有关更多信息,请访问:https://go.microsoft.com/fwlink/?linkid=830387"version":"0.2.0","configurations":[{"type":"node","request":"launch","name":"Launcher","skipFiles":["
