Аргумент типа {....} не может быть назначен параметру типа 'string |URL» - PullRequest
0 голосов
/ 02 октября 2019

Не могли бы вы помочь мне с ошибкой в ​​моем коде. Я пытаюсь подключить Mailchimp к своему приложению, чтобы, когда пользователь подписывается на электронную почту, оно добавлялось непосредственно в «аудиторию» в Mailchimp. Я написал код, но код жалуется на объект «параметры».

import { request } from "http";
import { resolve } from "url";
import { response } from "express";
import { reject } from "lodash";

export async function keepSubscribers(email: string) {
  const data = {
    members: [
      {
        // eslint-disable-next-line @typescript-eslint/camelcase
        email_address: email,
        status: 'subscribed'
      }
    ]
  }
  const postData = JSON.stringify(data)

  const options = {
    url: 'https://us20.api.mailchimp.com/3.0/lists/b0404295b1',
    method: 'POST',
    headers: {
      Authorization: 'auth 71634e399a09a918610fd25094e6731c-us20'
    },
    body: postData
  }

  return new Promise((resolve, reject) => {
    request(options: Object, (err: Object, response: { statusCode: number }) => {
      if (err) {
        return reject(`Request cannot be processed`);
      } else {
        if (response.statusCode === 200) {
          return resolve(true)
        } else {
          return reject(`Request cannot be processed`);
        }
      }
    })
  })
}

enter image description here

1 Ответ

0 голосов
/ 10 октября 2019

Попробуйте удалить тип в вызове request.

То есть замените эту строку:

    request(options: Object, (err: Object, response: { statusCode: number }) => {

на эту:

    request(options, (err: Object, response: { statusCode: number }) => {

Так какoptions - это значение, передаваемое в качестве параметра в этой строке (нет необходимости указывать его там).

Если проблема не устранена после этого изменения, укажите другие подробности об этом.

...