news 2026/9/3 12:29:15

TypeScript 基本结构

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
TypeScript 基本结构

TypeScript 项目的基本结构

一个典型的 TypeScript 项目(尤其是使用现代工具链的)会有清晰的目录结构和核心配置文件。下面以一个标准的前端或 Node.js 项目为例,介绍常见的基本结构。

1. 典型目录结构(推荐)
my-ts-project/ ├── src/ # 源码目录(所有 .ts 或 .tsx 文件放在这里) │ ├── index.ts # 入口文件(Node.js)或 main.ts │ ├── app.ts # 主要逻辑 │ ├── utils/ # 工具函数 │ │ └── helper.ts │ ├── types/ # 自定义类型、接口(可选) │ │ └── index.d.ts │ └── components/ # 如果是前端(如 React),放组件 │ └── Button.tsx ├── public/ # 静态资源(前端项目,如 index.html) │ └── index.html ├── dist/ # 编译输出目录(tsc 编译后生成,不要手动修改) ├── node_modules/ # 依赖包 ├── .gitignore ├── package.json # 项目元数据和依赖 ├── tsconfig.json # TypeScript 核心配置文件(最重要!) └── README.md
  • src/:所有 TypeScript 源代码都放在这里,便于管理和编译。
  • dist/:运行tsc后生成的纯 JavaScript 文件,通常部署这个目录。
  • 对于 React + Vite 项目,结构类似,但可能有vite.config.ts
  • 对于 NestJS 等后端框架,会有src/main.ts作为入口。
2. 核心文件:tsconfig.json(必须)

这是 TypeScript 编译器的配置文件,定义了如何编译项目。以下是一个推荐的现代、严格模式基础配置(适用于大多数项目):

{"compilerOptions":{/* 基础选项 */"target":"ES2022",// 编译目标 JS 版本(可根据需要调整为 ES2020/ESNext)"module":"ESNext",// 模块系统(Vite/Webpack 用 ESNext,Node 用 CommonJS)"lib":["ES2022","DOM"],// 包含的类型库/* 严格模式(强烈推荐全部开启) */"strict":true,// 启用所有严格类型检查"noImplicitAny":true,"strictNullChecks":true,"strictFunctionTypes":true,"strictBindCallApply":true,"strictPropertyInitialization":true,"noImplicitThis":true,"alwaysStrict":true,/* 模块解析 */"moduleResolution":"node",// 或 "nodenext"(Node.js 新模式)"esModuleInterop":true,// 更好兼容 CommonJS 模块"resolveJsonModule":true,// 允许 import json 文件/* 输出控制 */"outDir":"./dist",// 输出目录"rootDir":"./src",// 源码根目录"sourceMap":true,// 生成 .map 文件,便于调试"removeComments":true,// 移除注释/* 其他实用选项 */"skipLibCheck":true,// 跳过第三方库类型检查(加速编译)"forceConsistentCasingInFileNames":true},"include":["src/**/*.ts",// 包含所有 src 下的 ts 文件"src/**/*.tsx"// 如果有 React],"exclude":["node_modules","dist"]}
3. package.json 中的脚本示例
{"name":"my-ts-project","version":"1.0.0","scripts":{"build":"tsc",// 编译:生成 dist 目录"build:watch":"tsc --watch",// 监视模式,文件变化自动重编"start":"node dist/index.js",// 运行编译后的代码"dev":"ts-node src/index.ts"// 使用 ts-node 直接运行 TS(开发时推荐)},"devDependencies":{"typescript":"^5.9","ts-node":"^10.9",// 可直接运行 TS 而不需先编译"@types/node":"^20.0"// Node.js 类型定义}}
4. 入门项目快速搭建步骤
  1. 创建文件夹并初始化:

    mkdirmy-ts-project&&cdmy-ts-projectnpminit -y
  2. 安装 TypeScript:

    npminstall-D typescript ts-node @types/node
  3. 生成 tsconfig.json:

    npx tsc --init

    然后手动修改为上面的推荐配置。

  4. 创建 src/index.ts:

    console.log("Hello TypeScript!");interfaceUser{name:string;age:number;}constuser:User={name:"Alice",age:25};console.log(user);
  5. 运行:

    npmrun dev# 或 npx ts-node src/index.ts
小结
  • 核心三要素src/(源码) +tsconfig.json(配置) +package.json(脚本和依赖)
  • 推荐始终开启"strict": true,养成良好的类型习惯。
  • 中大型项目可引入 ESLint + Prettier 进一步规范代码。

如果您想看特定类型项目的结构(如 React + Vite、Next.js、NestJS、Electron 等),或者需要一个完整可运行的示例仓库结构,请告诉我!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/3 7:30:13

TypeScript 循环

TypeScript 循环语句详解 TypeScript 的循环语句语法与 JavaScript 完全相同,包括 for、for...of、for...in、while、do...while,以及数组的高阶方法(如 forEach、map 等)。TypeScript 的优势在于类型推断和类型检查,…

作者头像 李华
网站建设 2026/9/2 4:17:25

Excalidraw AI生成结果准确性优化方向

Excalidraw AI生成结果准确性优化方向 在现代技术团队的日常协作中,一张草图往往比千言万语更有效。无论是快速勾勒系统架构、梳理业务流程,还是进行产品原型讨论,可视化表达已成为信息传递的核心手段。然而,传统绘图工具的学习成…

作者头像 李华
网站建设 2026/9/3 22:35:35

从零搭建AutoGLM自动化流水线,这7个必备脚本你用过几个?

第一章:Open-AutoGLM 常用脚本库概述 Open-AutoGLM 是一个面向自动化自然语言处理任务的开源脚本库集合,专为简化大模型调用、任务编排与结果后处理而设计。其核心目标是通过模块化脚本降低 GLM 系列模型在实际业务场景中的集成门槛。 核心功能模块 au…

作者头像 李华
网站建设 2026/9/3 11:40:54

【AI流程自动化新纪元】:Open-AutoGLM拖拽功能背后的黑科技解析

第一章:Open-AutoGLM拖拽式流程搭建 Open-AutoGLM 提供了一种直观高效的可视化开发方式,用户可以通过拖拽组件快速构建复杂的自然语言处理流程。该平台将模型调用、数据处理与逻辑控制抽象为可复用的节点,极大降低了AI应用开发的技术门槛。 …

作者头像 李华
网站建设 2026/9/4 2:04:06

Excalidraw冲突解决机制解析

Excalidraw冲突解决机制解析 在远程协作日益成为常态的今天,多个用户同时编辑同一份设计稿、流程图或白板笔记的场景已司空见惯。然而,当你拖动一个矩形的同时,同事也在修改它的颜色——这种“撞车”操作如何不丢数据、不卡界面、最终还能达成…

作者头像 李华
网站建设 2026/9/3 3:33:59

【无代码AI时代来临】:Open-AutoGLM让你7天掌握智能流程构建

第一章:无代码AI时代的到来与Open-AutoGLM的定位人工智能技术正以前所未有的速度向大众化、平民化演进。随着无代码(No-Code)理念在软件开发领域的成功实践,其与AI工程的深度融合催生了“无代码AI”这一新兴范式。该模式允许非技术…

作者头像 李华