Node.js 条纹&x2B;TypeScript:如何扩展条带节点的@types/stripe定义?
我正在做一个项目,我们正在为节点使用条带库。我们还想在这个项目上使用TypeScript 我发现Stripe没有提供正式的TypeScript定义,但我在NPM上找到了一些社区定义。所以我安装了它们,过了一段时间我发现了一个错误:Node.js 条纹&x2B;TypeScript:如何扩展条带节点的@types/stripe定义?,node.js,typescript,stripe-payments,Node.js,Typescript,Stripe Payments,我正在做一个项目,我们正在为节点使用条带库。我们还想在这个项目上使用TypeScript 我发现Stripe没有提供正式的TypeScript定义,但我在NPM上找到了一些社区定义。所以我安装了它们,过了一段时间我发现了一个错误: 类型“Stripe”上不存在属性“sources”。 这里缺少一些定义,比如这个 我想在本地添加缺少的定义。因此,我需要扩展此文件: 我认为对于上述问题,我需要: 添加属性源:Stripe.resources.sources到类条带 要将类源添加到命名空间资源 向
类型“Stripe”上不存在属性“sources”。
这里缺少一些定义,比如这个
我想在本地添加缺少的定义。因此,我需要扩展此文件:
我认为对于上述问题,我需要:
- 添加属性
源:Stripe.resources.sources代码>到类
条带
- 要将类
添加到命名空间源
资源
- 向类
源添加缺少的函数声明
问题是我真的不知道怎么做。扩展名为
.d.ts
的文件应该是什么样子?我根据一些示例和TypeScript文档做了很多尝试,但总是不起作用。你有什么想法吗?我不相信有办法增加指定的导出Stripe
类;问题类似于关于扩充默认导出类。此时,由于您不能使用增强功能,您必须为您的项目提供@types/stripe
定义,然后您还可以通过这种方式进行所有所需的更改。我想我的同事已经找到了适合我的解决方案。他是如何做到这一点的:
import ST from 'stripe'
declare module 'stripe' {
namespace sources {
interface ISource extends IResourceObject {
...
}
interface ISourceCreationData {
...
}
}
namespace resources {
class Sources {
create(data: sources.ISourceCreationData): Promise<sources.ISource>;
retrieve(source: string, client_secret?: string): Promise<sources.ISource>;
}
}
class Stripe extends ST {
sources: ST.resources.Sources;
}
}
从“条带”导入ST
声明模块“条带”{
名称空间源{
接口ISource扩展了IResourceObject{
...
}
接口ISourceCreationData{
...
}
}
命名空间资源{
类源{
创建(数据:sources.isosourcereationdata):承诺;
检索(来源:string,client\u secret?:string):承诺;
}
}
类Stripe扩展了ST{
资料来源:ST.resources.sources;
}
}
我尝试了这个方法,但仍然得到一个错误,sources
属性丢失。