Я пытаюсь определить файл определения для библиотеки 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;
}