如何初始化 TypeScript + Node.js 项目

一、先初始化项目(第一步必做)

bash 复制代码
# 1. 创建文件夹并进入 
mkdir ts-node-demo 
cd ts-node-demo 
# 2. 初始化 package.json 
npm init -y

二、安装核心依赖(TypeScript + 运行工具)

bash 复制代码
#开发依赖
npm i -D typescript ts-node nodemon @types/node
#安装express
npm i express
npm i -D @types/express

依赖说明

  • typescript:TS 核心编译器
  • ts-node:直接运行 TS 文件,不用手动编译成 JS
  • nodemon:文件修改自动重启
  • @types/node:Node.js 的 TS 类型定义
  • @types/express:Express 的 TS 类型(用 Express 才装)

三、生成 TS 配置文件 tsconfig.json(最关键)

方法 1:自动生成(推荐)

csharp 复制代码
npx tsc --init

方法 2:直接复制配置

直接在根目录新建 tsconfig.json ,复制下面内容,零配置直接用

json 复制代码
{
  "compilerOptions": {
    "target": "ES2020",
    "module": "CommonJS",
    "rootDir": "./src",        // 你的 TS 源码都放这里
    "outDir": "./dist",       // 编译后的 JS 输出到这里
    "strict": true,           // 开启严格模式(企业必须开)
    "esModuleInterop": true,
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true
  },
  "include": ["src/**/*"],    // 包含 src 下所有文件
  "exclude": ["node_modules"] // 排除依赖
}

四、配置启动脚本(package.json)

打开 package.json,把 scripts 替换成:

json 复制代码
"scripts": {
  "dev": "nodemon src/index.ts",   // 开发模式(热重启)
  "build": "tsc",                  // 编译 TS → JS(生成 dist 文件夹)
  "start": "node dist/index.js"    // 生产运行(上线用)
},

五、创建源码目录 + 测试文件

  1. 创建文件夹 src
  2. src 里新建 index.ts
typescript 复制代码
// src/index.ts
console.log("Hello TypeScript + Node.js 🚀")

// 测试 TS 类型
const sum = (a: number, b: number): number => {
  return a + b
}

console.log(sum(10, 20))

六、运行测试

arduino 复制代码
npm run dev
相关推荐
胡萝卜术4 小时前
从API调用到手写LRU:力扣146「LRU缓存」的哈希表+双向链表终极进化之路
前端·javascript·面试
科技道人4 小时前
记录 默认置灰/禁用 app ‘Search Engine Selector‘ 的disable按钮
开发语言·前端·javascript
shuaijie05189 小时前
强制修改调用接口的api地址。
javascript·vue.js·ecmascript
JerrySir9 小时前
恶意 npm 包只活了 17 分钟:技术面试里,为什么“升级依赖”还不算止血?
javascript·安全
白帽小阳9 小时前
2026前端面试题!(附答案及解析)
javascript·网络·python·安全·web安全·网络安全·护网行动
这是个栗子10 小时前
前端开发中的常用工具函数(八)
开发语言·前端·javascript
Hilaku10 小时前
Vue 和 React 真正的差距,不在语法,而在团队犯错成本
前端·javascript·程序员
研☆香10 小时前
为什么变量声明在赋值前也能使用?—— 深入理解 JavaScript 变量提升与作用域
开发语言·前端·javascript
柯克七七11 小时前
我把 bug 修得太干净了,测试组以为这个模块本来就没问题
前端·javascript·typescript
Null15511 小时前
浏览器唤起桌面端应用(终极篇)
前端·javascript