Я новичок в 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, хотя у меня нетпока не понял, как это сделать.Спасибо!