fp-ts-std 项目使用教程
1. 项目的目录结构及介绍
fp-ts-std 项目的目录结构如下:
fp-ts-std/
├── docs/
├── src/
│ ├── Applicative.ts
│ ├── Array.ts
│ ├── Bifunctor.ts
│ ├── Boolean.ts
│ ├── Date.ts
│ ├── Debug.ts
│ ├── DOM.ts
│ ├── Either.ts
│ ├── Enum.ts
│ ├── Env.ts
│ ├── Function.ts
│ ├── IO.ts
│ ├── IOEither.ts
│ ├── IOOption.ts
│ ├── Isomorphism.ts
│ ├── JSON.ts
│ ├── Lazy.ts
│ ├── Monad.ts
│ ├── Monoid.ts
│ ├── Newtype.ts
│ ├── NonEmptyString.ts
│ ├── Number.ts
│ ├── Option.ts
│ ├── Ordering.ts
│ ├── Predicate.ts
│ ├── Random.ts
│ ├── Reader.ts
│ ├── ReaderEither.ts
│ ├── ReaderIO.ts
│ ├── ReaderTask.ts
│ ├── ReaderTaskEither.ts
│ ├── ReadonlyArray.ts
│ ├── ReadonlyRecord.ts
│ ├── ReadonlyStruct.ts
│ ├── Record.ts
│ ├── Show.ts
│ ├── String.ts
│ ├── Struct.ts
│ ├── Task.ts
│ ├── TaskEither.ts
│ ├── TaskOption.ts
│ ├── Tuple.ts
│ ├── URL.ts
│ ├── URLPath.ts
│ ├── URLSearchParams.ts
│ └── index.ts
├── test/
├── .gitignore
├── .npmignore
├── .prettierrc
├── .travis.yml
├── CHANGELOG.md
├── LICENSE
├── README.md
├── package.json
└── tsconfig.json
目录结构介绍
docs/
: 存放项目文档。src/
: 存放项目源代码文件。Applicative.ts
,Array.ts
,Bifunctor.ts
, 等: 各个模块的实现文件。index.ts
: 项目的入口文件。
test/
: 存放测试文件。.gitignore
: Git 忽略文件配置。.npmignore
: npm 忽略文件配置。.prettierrc
: Prettier 代码格式化配置。.travis.yml
: Travis CI 配置文件。CHANGELOG.md
: 变更日志。LICENSE
: 项目许可证。README.md
: 项目说明文档。package.json
: 项目依赖和脚本配置。tsconfig.json
: TypeScript 配置文件。
2. 项目的启动文件介绍
项目的启动文件是 src/index.ts
,它作为项目的入口文件,导出了所有模块的接口。
// src/index.ts
export * from "./Applicative";
export * from "./Array";
export * from "./Bifunctor";
export * from "./Boolean";
export * from "./Date";
export * from "./Debug";
export * from "./DOM";
export * from "./Either";
export * from "./Enum";
export * from "./Env";
export * from "./Function";
export * from "./IO";
export * from "./IOEither";
export * from "./IOOption";
export * from "./Isomorphism";
export * from "./JSON";
export * from "./Lazy";
export * from "./Monad";
export * from "./Monoid";
export * from "./Newtype";
export * from "./NonEmptyString";
export * from "./Number";
export * from "./Option";
export * from "./Ordering";
export * from "./Predicate";
export * from "./Random";
export * from "./Reader";
export * from "./ReaderEither";
export * from "./ReaderIO";
export * from "./ReaderTask";
export * from "./ReaderTaskEither";
export * from "./ReadonlyArray";
export * from "./ReadonlyRecord";
export * from "./ReadonlyStruct";
export * from "./Record";
export * from "./Show";
export * from "./String";
export * from "./Struct";
export * from "./Task";
export * from "./TaskEither";
export