news 2026/6/10 0:47:24

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/6/9 21:13:53

为什么顶尖团队都在用Open-AutoGLM做流程编排?真相终于揭晓

第一章:为什么顶尖团队选择Open-AutoGLM在人工智能模型快速演进的今天,顶尖技术团队对自动化机器学习(AutoML)平台的选择愈发严苛。Open-AutoGLM 以其独特的架构设计与开放生态,成为众多头部研发团队的核心工具链组件。…

作者头像 李华
网站建设 2026/6/9 22:32:39

【AI自动化新纪元】:Open-AutoGLM自定义任务的7个关键节点

第一章:Open-AutoGLM自定义任务流程概览Open-AutoGLM 是一个面向自动化自然语言任务构建的开源框架,支持用户通过声明式配置快速定义和执行定制化 NLP 流程。其核心设计理念是将任务拆解为可复用的模块单元,包括数据加载、提示工程、模型调用…

作者头像 李华
网站建设 2026/6/9 17:21:32

Obsidian使用学习

之前听说过Obsidian是一个不错的笔记管理软件,但一直没用过,最近研究了一下,发现管理markdown笔记文件确实很方便 1. 下载链接 软件下载链接:https://obsidian.md/ 2. 学习资源 网上有很多的学习资源,这里给出几个还…

作者头像 李华
网站建设 2026/6/9 21:35:17

Open-AutoGLM配置实战手册(99%工程师忽略的关键细节)

第一章:Open-AutoGLM可视化配置工具概述Open-AutoGLM 是一款面向大语言模型(LLM)自动化任务的可视化配置工具,旨在降低非专业开发者在构建和部署自然语言处理流程时的技术门槛。通过图形化界面与模块化组件的结合,用户…

作者头像 李华
网站建设 2026/6/9 3:28:26

Open-AutoGLM实战指南(自定义任务链构建与优化大公开)

第一章:Open-AutoGLM实战入门与核心概念Open-AutoGLM 是一个面向自动化自然语言处理任务的开源框架,专为简化大语言模型(LLM)在实际业务场景中的部署与调优而设计。其核心理念是通过声明式配置驱动模型推理、微调与评估流程&#…

作者头像 李华
网站建设 2026/6/9 21:37:25

Open-AutoGLM流程模板实战:3步构建企业级AI推理流水线

第一章:Open-AutoGLM流程模板分享Open-AutoGLM 是一个面向自动化生成语言模型任务的开源流程框架,旨在通过标准化模板提升开发效率与模型复用能力。该框架支持从数据预处理、提示工程构建到模型推理与评估的全流程管理。核心组件结构 config:…

作者头像 李华