TypedJSON 使用教程
1. 项目的目录结构及介绍
TypedJSON 是一个用于 TypeScript 的类型化 JSON 解析和序列化库,它能够保留类型信息。以下是 TypedJSON 项目的基本目录结构及其介绍:
TypedJSON/
├── src/
│ ├── decorators/
│ │ ├── index.ts
│ │ ├── jsonArrayMember.ts
│ │ ├── jsonMember.ts
│ │ ├── jsonObject.ts
│ │ └── ...
│ ├── parser/
│ │ ├── index.ts
│ │ ├── json-formatter.ts
│ │ ├── json-parser.ts
│ │ └── ...
│ ├── serializer/
│ │ ├── index.ts
│ │ ├── json-serializer.ts
│ │ └── ...
│ ├── typed-json.ts
│ └── ...
├── tests/
│ ├── decorators/
│ │ ├── jsonArrayMember.spec.ts
│ │ ├── jsonMember.spec.ts
│ │ ├── jsonObject.spec.ts
│ │ └── ...
│ ├── parser/
│ │ ├── json-formatter.spec.ts
│ │ ├── json-parser.spec.ts
│ │ └── ...
│ ├── serializer/
│ │ ├── json-serializer.spec.ts
│ │ └── ...
│ └── ...
├── .gitignore
├── LICENSE
├── package.json
├── README.md
├── tsconfig.json
└── ...
目录结构介绍
src/
: 包含项目的源代码。decorators/
: 包含用于定义 JSON 对象和成员的装饰器。parser/
: 包含 JSON 解析器相关的代码。serializer/
: 包含 JSON 序列化器相关的代码。typed-json.ts
: 主入口文件。
tests/
: 包含项目的测试代码。decorators/
: 包含装饰器的测试。parser/
: 包含解析器的测试。serializer/
: 包含序列化器的测试。
.gitignore
: 指定 Git 忽略的文件和目录。LICENSE
: 项目的许可证文件。package.json
: 项目的 npm 配置文件。README.md
: 项目的说明文档。tsconfig.json
: TypeScript 配置文件。
2. 项目的启动文件介绍
TypedJSON 的启动文件是 src/typed-json.ts
。这个文件是整个库的入口点,负责导出主要的类和函数供外部使用。
// src/typed-json.ts
export * from './decorators';
export * from './parser';
export * from './serializer';
启动文件介绍
src/typed-json.ts
: 导出了装饰器、解析器和序列化器模块,使得用户可以方便地使用这些功能。
3. 项目的配置文件介绍
TypedJSON 的配置文件主要是 tsconfig.json
和 package.json
。
tsconfig.json
tsconfig.json
是 TypeScript 项目的配置文件,定义了编译选项和项目结构。
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"strict": true,
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true
},
"include": ["src/**/*"],
"exclude": ["node_modules", "**/*.spec.ts"]
}
package.json
package.json
是 npm 项目的配置文件,定义了项目的依赖、脚本和其他元数据。
{
"name": "typedjson",
"version": "1.0.0",
"description": "Typed JSON parsing and serializing for TypeScript that preserves type information",
"main": "dist/typed-json.js",
"types": "dist/typed-json.d.ts",
"scripts": {
"build": "tsc",
"test": "jest"
},
"dependencies": {
"reflect-metadata":