Определение файла определения TypeScript для существующего проекта js - PullRequest
0 голосов
/ 10 апреля 2020

Я пытаюсь определить файл определения для библиотеки js, которую можно импортировать:

    import * as Joi from '@hapi/joi';
    import * as dynamo from 'dynamodb';

    const Account = dynamo.define('Account', {
      hashKey: 2,
      timestamps: true,
      schema: {
        email:    Joi.string().email(),
        name:     Joi.string(),
        age:      Joi.number(),
        roles:    dynamo.types.stringSet(),
        settings: {
          nickname:      Joi.string(),
          acceptedTerms: Joi.boolean().default(false),
        },
      },
    });

Но я всегда получаю сообщение об ошибке:

TS2339: свойство 'define' не существует для типа 'typeof import ("/ mypath / dynamicodb / index") ".

Даже если моя IDE, кажется, связывает их правильно.

Здесь index.d.ts я создал:

import { AnySchema } from '@hapi/joi';

interface SchemaConfig {
  hashKey: string;
  timestamps: boolean;
  rangeKey?: string;
  schema: {
    roles: any;
    [key:string]: AnySchema
  }
}

declare module "dynamodb" {
  export function define(modelName: string, config: SchemaConfig): any;
  export var types: any;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...