在上一篇笔记中:Vuex 4源码学习笔记 - 通过Vuex源码学习E2E测试(十一)
我们通过jest
和puppeteer
来实现了Vuex的e2e测试。
那么今天我们来继续看另外的TypeScript测试,那么TypeScript测试是什么呢?
首先Vuex的源码是使用JavaScript来开发的,并没有类型的声明,那么Vuex要实现TypeScript的类型就只能通过TypeScript的.d.ts来去描述类型。
我们可以看到在types文件夹下有几个.d.ts的文件,他们都是用来描述TS类型的文件。
比如其中的index.d.ts
文件,可以看到声明类型的代码量不小,其实占Vuex源码的很大一部分,但这其实也很重要,对于一个上百万人使用的库来说,做好类型定义是非常有意义的。可能对一些对并不熟悉TypeScript的小伙伴来说这些代码可能并不是很好理解,像我来说平时其实用TypeScript也没有这么深入,有些地方看起来确实需要琢磨琢磨,不过多看就好了。
import {
App, WatchOptions, InjectionKey } from "vue";
// augment typings of Vue.js
import "./vue";
import {
mapState, mapMutations, mapGetters, mapActions, createNamespacedHelpers } from "./helpers";
import {
createLogger } from "./logger";
export * from "./helpers";
export * from "./logger";
export declare class Store<S> {
constructor(options: StoreOptions<S>);
readonly state: S