Пакет npm с классами, не совместимыми между машинописной и транспортной версиями - PullRequest
0 голосов
/ 18 сентября 2018

Привет, я кодирую пакет npm, закодирован в машинописи и передан.

Этот пакет теперь используется в приложении для машинописи, но у меня есть 1 ошибка:

[ts]
Argument of type 'import("/home/chriss/Sites/ORM/connection").DB' is not assignable to parameter of type 'import("/home/chriss/Sites/ORM/dist/connection").DB'.
Property 'connections' is protected but type 'DB' is not a class derived from 'DB'.

Тот же самый класс, только 1 - машинописный, а другой - транспонированный

Я заявляю так:

import { DB } from "@unicoderns/orm/connection"
...
constructor(config: Config, baseURL: string) {
    this.config = config;
    this.db = new DB({ dev: config.dev, connection: config.dbconnection });
}

А затем назовите модель так:

this.usersTable = new users.Users(jsloth.db);

где jsloth.db - это this.db из первого кода.

И это в пакете npm Что ожидает:

constructor(DB: DB, privacy?: string);

Что я могу сделать?

РЕДАКТИРОВАТЬ 1:

Пакет уже выпущен, источник доступен по адресу:

https://github.com/unicoderns/ORM

Грязный и быстрый обходной путь был добавлен | any к ожидаемому типу model.ts в строке 56 constructor(DB: DB | any

Это должно быть исправлено:)

Библиотека, использующая этот пакет, также является OpenSource, и код можно найти по адресу:

https://github.com/unicoderns/JSloth

После удаления | any из пакета несколько файлов должны «выкрикнуть» ошибку в IDE, но, вероятно, все еще работает, например source/system/apps/auth/endpoint/v1/index в строках 57 и 58

.

Еще раз спасибо за помощь.

1 Ответ

0 голосов
/ 18 сентября 2018

Если вы укажете поля "main" и "typings" в package.json пакета @unicoderns/orm на подкаталог dist, то импорт @unicoderns/orm перейдет в этот подкаталог. При импорте неосновного модуля @unicoderns/orm, такого как source/system/lib/core.ts строка 25:

import { DB } from "@unicoderns/orm/connection"

вам нужно использовать путь в dist для обеспечения согласованности:

import { DB } from "@unicoderns/orm/dist/connection"

См. эту тему и, в частности, этот комментарий для получения дополнительной информации.

...