typescript - TypeScript 任何不提供特定参数的类型
问题描述
我有一个访问本地/会话存储的功能。它受到一个条件的保护,如果定义了窗口,它就可以调用该函数。
此函数传播一个通用args
参数。我已将类型定义为any[]
简化开发。
在useSessionStorage
函数内部,我得到了这个 TypeScript 错误:
没有提供“key”的参数。
我将如何解决这个问题?
export const useStorage = ( storage: any, key: string, initialValue: any, options = {} ) => {
const { deleteKeyIfValueIs = null } = options as any
...
export const useSessionStorage = ( ...args: any[] ) =>
useStorage( typeof window !== `undefined` && sessionStorage, ...args ) // <- Error here
解决方案
该函数useStorage
需要 3 或 4 个参数,而args
ofuseSessionStorage
将传递一个甚至超过 4 个参数,所以我们不能any[]
在这里使用。为了更加类型安全,您可以尝试以下更改
// change
(...args: any[])
// into
(...args: [string, any, object?])
推荐阅读
- awk - 如何使用 sed 和 grep 修复我的文件
- docker - 在 Docker Toolbox 中运行容器后 URL 不起作用
- flutter - 解析军事时间以翻倍
- c++ - 如何从 vkEnumeratePhysicalDevices 返回一个 VkPhysicalDevice
- autohotkey - AutoHotKey - 如何引用当前目录中的文件?
- javascript - 客户端密码和 ID 将在未来几个月内弃用
- javascript - 我有对象数组,它需要根据条件返回总和数组
- node.js - 对 AWS Step Function 执行进行排队的最佳方式是什么?
- python - 运行时错误“imageio.mimread() has read over 256 MiB of”背后的原因是什么?
- c# - Xamarin 表单 - Wordpress REST API - 查看用户名和密码