假设某个外部库或打字脚本本身确实声明了函数,如

declare function fetch(input: RequestInfo | URL, init?: RequestInit): Promise<Response>;

是否可以在不复制粘贴的情况下将此声明用于不同的函数?

推荐答案

假设您正在寻找类似下面这样的内容(pseudo code):

declare function fetch(
  input: RequestInfo | URL,
  init?: RequestInit
): Promise<Response>;

declare function myFetch = fetch;

不,这不可能.但是您可以使用实用程序类型ParametersReturnType以动态方式复制类型信息,这将为您提供完全相同的签名.

declare function myFetch(
  ...args: Parameters<typeof fetch>
): ReturnType<typeof fetch>;

Typescript相关问答推荐

如何将绑定到实例的类方法复制到类型脚本中的普通对象?

类型断言添加到类型而不是替换

需要使用相同组件重新加载路由变更数据—React TSX

使某些类型的字段变为可选字段'

根据上一个参数值查找参数类型,也返回类型

泛型类型联合将参数转换为Never

我想创建一个只需要一个未定义属性的打字脚本类型

如何重构长联合类型?

如何将CSV/TXT文件导入到服务中?

如何使用WebStorm调试NextJS的TypeScrip服务器端代码?

如何在NX工作区项目.json中设置类似angular.json的两个项目构建配置?

如何在Typescript 中组合unions ?

是否有可能避免此泛型函数体中的类型断言?

ANGLE NumberValueAccessor表单控件值更改订阅两次

如何从上传文件中删除预览文件图标?

如何在本地存储中声明该类型?

将类型脚本函数返回类型提取到VSCode中的接口

如何在TypeScrip中使用数组作为字符串的封闭列表?

TypeScript:方法获胜';t接受较窄类型作为参数

断言同级为true或抛出错误的Typescript函数