news 2026/5/26 7:07:39

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/5/26 4:56:15

TypeScript 变量声明

TypeScript 变量声明详解 TypeScript 的变量声明方式与现代 JavaScript(ES6)完全一致,主要使用 let、const 和 var(不推荐)。区别在于 TypeScript 增加了静态类型注解,可以在声明时指定变量的类型&#xf…

作者头像 李华
网站建设 2026/5/26 4:56:57

TypeScript 函数

TypeScript 函数详解 TypeScript 的函数语法与 JavaScript 基本一致,但增加了强大的类型支持,包括参数类型、返回值类型、可选参数、默认参数、剩余参数、重载等。这些特性让函数更安全、更易维护。 1. 基本函数声明与表达式 // 函数声明(…

作者头像 李华
网站建设 2026/5/25 12:35:26

Excalidraw访客模式使用注意事项

Excalidraw访客模式使用注意事项 在远程会议频繁、跨组织协作日益普遍的今天,一个简单却高效的可视化工具往往能决定一场头脑风暴的成败。设想这样一个场景:你正在主持一次产品架构评审会,参会者包括外部顾问、客户代表和内部开发人员。传统流…

作者头像 李华
网站建设 2026/5/25 12:35:22

【AI工程化新突破】:Open-AutoGLM可视化配置的7个高阶用法

第一章:Open-AutoGLM可视化配置工具的核心价值Open-AutoGLM作为面向大模型应用开发的可视化配置工具,显著降低了非专业开发者在构建智能对话系统时的技术门槛。通过图形化界面与模块化设计,用户无需编写复杂代码即可完成模型调用、提示工程优…

作者头像 李华
网站建设 2026/5/26 6:11:59

Open-AutoGLM高效开发实战(拖拽式流程设计全曝光)

第一章:Open-AutoGLM高效开发概览Open-AutoGLM 是一个面向生成式语言模型自动化开发的开源框架,旨在简化从模型训练、微调到部署的全流程。其核心设计理念是通过声明式配置与模块化组件结合,提升开发效率并降低使用门槛。核心特性 支持多后端…

作者头像 李华
网站建设 2026/5/26 5:46:03

Excalidraw项目空间组织结构设计

Excalidraw项目空间组织结构设计 在远程协作成为常态的今天,团队沟通中最缺失的是什么?不是视频会议里的面孔,也不是即时消息中的文字,而是那块可以随手涂画、边说边改的白板。真实会议室里,一张草图往往胜过千言万语&…

作者头像 李华