我在我正在使用的 NPM 模块中遇到了这个,但我不知道这意味着什么
getStorage?: () => StorageType
使用getStorage的地方:
export interface IAuthTokenInterceptorConfig {
header?: string
headerPrefix?: string
requestRefresh: TokenRefreshRequest
tokenExpireFudge?: number
getStorage?: () => StorageType
}
以下是存储类型的定义:
export type StorageType = {
remove(key: string): void
set(key: string, value: string): void
get(value: string): string | null
}
其次...我认为它试图告诉我,我可以提供自己的存储提供商..但我该怎么做?
getStorage
是一个可选属性,如果定义,则必须是返回 StorageType
的函数,又名 factory。
例如,您可以定义一个工厂函数来返回
localStorage
支持的 StorageType
...
class LocalStorageType implements StorageType {
remove(key: string) {
localStorage.removeItem(key);
}
set(key: string, value: string) {
localStorage.setItem(key, value);
}
get(key: string) {
return localStorage.getItem(key);
}
}
const myAuthTokenInterceptorConfig: IAuthTokenInterceptorConfig = {
// other properties...
getStorage: () => new LocalStorageType(),
}