Airtable не определен после импорта - PullRequest
0 голосов
/ 29 апреля 2020

Мне дано задание выполнить некоторые вещи с данными, полученными из API AirTable с NodeJS. Я использую библиотеку узлов AirTable JS с определениями Airtable DefiniteTyped (я использую Nest JS).

Поэтому, естественно, я делаю следующее для импорта необходимых пакетов.

yarn add airtable @types/airtable

Затем в моем репозитории, который взаимодействует с API AirTable, у меня есть следующее:

import { User } from "../entities/user";
import { ConfigService } from "@nestjs/config";
import { Inject, Injectable } from "@nestjs/common";
import { LogService } from "src/log/services/log/log.service";
import { Base } from "airtable";


@Injectable()
export class UsersRepository {
    private readonly apiKey: string;
    private readonly baseId: string;

    constructor(@Inject(ConfigService) private readonly config: ConfigService, @Inject(LogService) private readonly log: LogService) {
        this.apiKey = this.config.get<string>('airtable.apiKey');
        this.baseId = this.config.get<string>('airtable.baseId');
    }

    async getUnmatchedUsers(): Promise<User[]> {

        const base: Base = new Airtable({apiKey: this.apiKey}).base(this.baseId);
        // other code here
     }
  }

Но при его запуске я получаю следующую ошибку, относящуюся к функции репозитория:

ReferenceError: Airtable is not defined

Я что-то здесь упустил или неправильно импортировал пакет Airtable?

Спасибо.

Ответы [ 2 ]

1 голос
/ 29 апреля 2020

Это не определено, потому что вы не импортировали Airtable.

Это, вероятно, будет выглядеть так:

import Airtable, { Base } from "airtable";
0 голосов
/ 29 апреля 2020

У вас нет класса Airtable, импортированного откуда-либо, поэтому Node и Tyepscript не имеют ни малейшего представления, что это такое. Самый близкий у вас тип Base, импортированный из пакета airtable. Поскольку их документация не опубликована c, трудно сказать, как это исправить.

...