Тип ‘string’ не может быть присвоен типу ‘»UnexpectedEof»‘

#typescript #deno

Вопрос:

Получаю эту ошибку при компиляции моего приложения deno:

 $ deno compile --allow-all --unstable --output ./app ./index.ts
Check file:///home/ubuntu/www/iptvfish/iptvfish-api/index.ts
error: TS2416 [ERROR]: Property 'name' in type 'PartialReadError' is not assignable to the same property in base type 'UnexpectedEof'.
  Type 'string' is not assignable to type '"UnexpectedEof"'.
  name = "PartialReadError";
  ~~~~
    at https://deno.land/std@0.74.0/io/bufio.ts:27:3
TS2416 [ERROR]: Property 'name' in type 'PartialReadError' is not assignable to the same property in base type 'UnexpectedEof'.
  Type 'string' is not assignable to type '"UnexpectedEof"'.
  name = "PartialReadError";
  ~~~~
    at https://deno.land/std@0.83.0/io/bufio.ts:27:3

Found 2 errors.
 
 $ deno -V
deno 1.13.0
 

код работал до того, как я обновил deno

Комментарии:

1. Вы импортируете std/io/bufio напрямую или это импортируется другой зависимостью? Библиотека std версируется вместе с Deno, и каждая новая версия библиотеки std гарантированно будет работать с этой версией Deno. (Это не обязательно обратная совместимость.) Вы можете попробовать обновить эту зависимость до совместимой версии: https://deno.land/std@0.104.0/io/bufio.ts если вы контролируете импорт, или вы можете использовать карту импорта для сопоставления более старых спецификаторов версий с текущей.

2. должно быть, это либо дуб, либо денодб, использующий его. я его не импортирую.

3. Мне пришлось использовать метод import map для некоторых зависимостей, которые зависят от семантики свойств Deno пространства имен, зависящей от версии, и это решило для меня аналогичные проблемы. Если это в конечном итоге сработает для вас, или вам понадобится больше деталей, я создам правильный ответ.

Ответ №1:

Оказывается, это ошибка с драйвером mysql и 1.13.0 deno (исправлено, но denodb еще не выпустил свой патч).

На данный момент вы можете сделать это:

 // import { Database, SQLite3Connector } from 'https://deno.land/x/denodb/mod.ts';
import { Database, SQLite3Connector } from 'https://raw.githubusercontent.com/stillalivx/denodb/master/mod.ts';
 

Комментарии:

1. Я бы предложил использовать определенный идентификатор фиксации в URL-адресе содержимого необработанного githubuser, чтобы избежать внесения критических изменений из главной ветви, но да, удаление прямо с github-отличное решение этой проблемы!