Импорт: модуль не найден компилятором, работает с визуальным кодом, DefinitiveTyped - PullRequest
0 голосов
/ 28 декабря 2018

Я новичок в Typescript и надеюсь, что мне здесь не хватает чего-то простого.Я установил определения типов для библиотеки javascript и получил сообщение об ошибке, выдаваемое компилятором, но не могу понять, что происходит.Мой редактор - Visual Studio Code, и я разрабатываю проект машинописного набора текста на Mac.Вот игра по пьесе.

Я установил определения типов для 'keen-tracking' следующим образом:

npm install @types/keen-tracking@2.0.0

Затем я добавил несколько строк в 'src / vendor.ts', который выглядит следующим образом:

import KeenTracking from 'keen-tracking';

const keenTrackingCredentials = {
    projectId: 'xxx',
    writeKey: 'yyy'
  };

export const keenClient = new KeenTracking(keenTrackingCredentials);

Наконец, я импортирую keenClient в такой компонент, как

import {keenClient} from '../model/vendor';

const MyComponent :React.SFC<MemberProps> = props => {
    return <div>
        <Cover {...props} actionLabel="Label" action={function():void{ keenClient.recordEvent('pledge', {member: props.member.email} ) }} /> 
    </div>

Я запускаю свой проект с запуском npm, и когда я сохраняю файл, компилятор выдает следующую ошибку

Module not found: Can't resolve 'keen-tracking' in '~/projectDir/src/model'

Код Visual Studio распознает ссылку на определения типа активного отслеживания, которая выглядит следующим образом.Я признаю, что версия машинописного текста - 2.0, и когда я набираю tsc --version в командной строке, я вижу, что версия 3.2.2 работает, хотя я не уверен, что это та же версия, что и код Visual Studio.

// Type definitions for keen-tracking 2.0
// Project: https://github.com/keen/keen-tracking.js#readme
// Definitions by: Rui Ferreira <https://github.com/rui-ferreira>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.2

export default class KeenTracking {
    constructor(options: { projectId: string; writeKey: string; requestType?: string });

    recordEvent(
        collectionName: string,
        event: object
    ): Promise<{ created: boolean }>;

    recordEvents(events: {
        [collectionName: string]: object[];
    }): Promise<{
        [collectionName: string]: boolean[];
    }>;
}

Буду признателен за любые указания на то, где я могу посмотреть дальше, чтобы решить эту проблему, в настоящее время я думаю, что определение неверное, или, возможно, мне нужно отладить сгенерированные файлы js, хотя у меня нетпока не понял, как это сделать.Спасибо!

1 Ответ

0 голосов
/ 28 декабря 2018

Вы установили типы, но не модуль, поэтому установите модуль, используя приведенную ниже команду, и перезапустите приложение.

   npm install keen-tracking --save

А также то, как установленные вами типы могут не работать

Попробуйте тоже безверсия

  npm install --save @types/keen-tracking
...