@mailchimp/mailchimp_marketing/types.d.ts'不是nodeJs中的模块

2024-05-18

我在 NodeJS 应用程序中导入了 import @mailchimp/mailchim_marketing :

import mailchimp from "@mailchimp/mailchimp_marketing";

但是,它给出以下错误:

type.d.ts 不是模块

我搜索过是否有 @types/@mailchimp/mailchimp_marketing 但我看不到它。


The type.d.ts@mailchimp/mailchimp_marketing 提供的文件没有库的类型,并且该包也没有 @types 包。因此有必要创建自己的来覆盖他提供的。

为此,创建文件夹@types/@mailchimp/mailchimp_marketing(一个在另一个里面)并创建文件index.d.ts inside mailchimp_marketing.

该文件必须包含模块的声明,以及您要从库中使用的函数和类型。就我而言:

declare module '@mailchimp/mailchimp_marketing' {
  type Config = {
    apiKey?: string,
    accessToken?: string,
    server?: string
  }

  type SetListMemberOptions = {
    skipMergeValidation: boolean
  }

  export type SetListMemberBody = {
    email_address: string,
    status_if_new: 'subscribed' | 'unsubscribed' | 'cleaned' | 'pending' | 'transactional'
    merge_fields?: {[key: string]: any}
  }

  export default {
    setConfig: (config: Config) => {},
    lists: {
      setListMember: (listId: string, subscriberHash: string, body: SetListMemberBody, opts?: SetListMemberOptions): Promise<void> => {}
    }
  }
}

SetListMemberBody有更多的领域和setListMember不是无效的,但我添加了我要使用的内容。为了发现这个字段和函数,我查看了源代码(https://github.com/mailchimp/mailchimp-marketing-node https://github.com/mailchimp/mailchimp-marketing-node)和 API 文档(https://mailchimp.com/developer/api/marketing/list-members/add-or-update-list-member/ https://mailchimp.com/developer/api/marketing/list-members/add-or-update-list-member/).

就我而言(Typescript 3.7.3)无需更改tsconfig.json,但如果您使用旧版本,可能需要在 tsconfig.json 中为您的编译器选项添加“typeRoots”:

"compilerOptions": {
  "typeRoots": ["@types", "node_modules/@types"]`
  // other options
}

完成所有这些之后,我正常使用了该库:

import mailchimp, { SetListMemberBody } from '@mailchimp/mailchimp_marketing'
import crypto from 'crypto'

mailchimp.setConfig({
  apiKey: process.env.MAILCHIMP_KEY,
  server: 'serverHere',
});

const listId = 'listIdHere'

export const addSubscriber = async (member: SetListMemberBody): Promise<void> => {
  const hash = crypto.createHash('md5').update(member.email_address).digest('hex')
  await mailchimp.lists.setListMember(listId, hash, member)
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

@mailchimp/mailchimp_marketing/types.d.ts'不是nodeJs中的模块 的相关文章

随机推荐

  • 使用大矩阵操作

    我必须使用 big matrix 对象 并且无法计算某些函数 让我们考虑以下大矩阵 create big matrix object x lt as big matrix matrix sample 1 10 20 replace TRUE
  • 在我的 Android 应用程序中使用 ServerValue.TIMESTAMP

    我读过很多相关的 stackoverflow 问题 ServerValue TIMESTAMP 但我不知道如何在我的应用程序中使用它 我需要获取帖子创建的时间戳 时间戳应该添加到与帖子的 uid 作者等相同的位置 代码片段其中写这篇文章Fi
  • Opencv Mat内存管理

    内存管理对于图像类至关重要 在opencv中 图像类是cv Mat 它有一个微妙的内存管理方案 假设我已经有了自己的图像类SelfImage class SelfImage public int width int height unsig
  • 软件 Perlin 噪声实现

    我根据以下信息编写了 2D Perlin 噪声实现here http www dreamincode net forums topic 66480 perlin noise here http freespace virgin net hu
  • RedirectToAction 和“对象移至此处”错误

    我在 MVC 3 0 中遇到 RedirectToAction 的奇怪问题 这是我的示例 ViewModel 的代码 public class EventViewModel Required ErrorMessageResourceType
  • 在 Visual Studio 2012 中安装 OpenCV

    我正在尝试安装 OpenCV 来与 Visual Studio 一起使用 我使用的是2012Pro版本 但我认为它应该与vs10相同 我正在关注这个教程 http docs opencv org doc tutorials introduc
  • Perl:测试输入阅读器?

    有没有一种方法可以使用标准 Test 等模块自动测试 Perl 程序是否正在读取输入 例如标准输入正确吗 例如 测试一个从 STDIN 读取两个整数并打印它们之和的程序 这不是 100 清楚你的意思 我会回答假设你想编写一个测试脚本来测试你
  • 为什么我无法访问打字稿类的构造函数中的抽象属性

    abstract class Route abstract readonly name string protected abstract pattern string public constructor Do something wit
  • ubuntu中R的igraph包的安装

    我使用以下命令在 ubuntu 中安装 R 的 igraph 包 install packages igraph 但我收到一条错误消息 警告 无法访问存储库的索引 http ftp iitm ac in cran src contrib h
  • 无法从 C# WPF 中的另一个窗口调用方法

    好吧 假设我有两个窗户 在第一个中我有一个方法 public void Test Label Content works 在第二个方法中 我称此方法为 MainWindow mw new MainWindow mw Test 但什么也没发生
  • Vuejs 错误:客户端渲染的虚拟 DOM 树与服务器渲染的不匹配

    我在我的应用程序中使用 Nuxt js Vuejs 并且我在不同的地方不断遇到此错误 The client side rendered virtual DOM tree is not matching server rendered con
  • Swift Codable 将空 json 解码为 nil 或空对象

    这是我的代码 class LoginUserResponse Codable var result String var data LoginUserResponseData var mess String public class Log
  • 通过 C/C++ API 对 Z3 中的 LIA 进行量词消除

    我想使用 Z3 通过 C C API 消除线性整数算术公式中的量词 考虑一个简单的例子 Exists x x 0 我尝试这样做 context ctx ctx set ELIM QUANTIFIERS true expr x ctx int
  • 如何在Python中的某个字符后分割字符串

    如果我有一个字符串 我们就说 b a hello b Hi 我怎样才能将字符串拆分为所有bs AFTER该字母第一次出现a 就像 它会返回 b a hello Hi 此处记录了这一点 str rsplit https docs python
  • Fluidtypo3 Flux - 保存在表字段中

    我正在尝试使用typo3 fluidcontent开发一个前端扩展 是否可以使用 tt content 表的 bodytext 字段而不是 flexform 字段 我想将此文本元素与tt content bodytext field
  • 使用多个可选模式时顺序的重要性

    可选模式的顺序如何DateTimeFormatter影响解析操作吗 我正在运行这个程序 想知道为什么最后一行抛出异常而不是前三行 public static void main String args String p1 EEEE E dd
  • 如何调试symfony2服务容器中配置的标签和服务?

    我正在编写一个服务来处理 AccessDeniedException 并且我找到了一种方法来解决它使用 Symfony2 的 AccessDeniedHandlerInterface https stackoverflow com ques
  • 删除字符串末尾的句点和数字

    如何删除尾随句点 后面紧跟一个数字 长度为一位或两位数字 例子 z lt c awe p 56 red 45 ted 5 you 88 tom 我只想删除 45和 5 你只需要一个简单的正则表达式 z new gsub 0 9 z 一些评论
  • JSTree - 如何强制用户只选择树的叶子

    在我的 JStree 中 我希望用户只能选择树的叶子 例如 没有子节点的节点 我的想法是绑定 select 事件并手动检查所选节点是否有子节点 然后相应地选择 不选择该节点 有没有更简单的方法 或者这个明显的解决方案是唯一的吗 2014 版
  • @mailchimp/mailchimp_marketing/types.d.ts'不是nodeJs中的模块

    我在 NodeJS 应用程序中导入了 import mailchimp mailchim marketing import mailchimp from mailchimp mailchimp marketing 但是 它给出以下错误 ty