Стройность Vite: доступное для записи хранилище в машинописном виде, не удается импортировать доступный для записи интерфейс

#typescript #svelte #vite

Вопрос:

В стройном проекте, построенном с использованием Vite, я пытаюсь написать стройное хранилище в машинописном виде; возникают проблемы с импортом Writable<T> интерфейса, как показано ниже:

 import { Writable, writable, derived } from 'svelte/store';
 

Это приводит к следующей ошибке в консоли браузера:

 Uncaught SyntaxError: The requested module '/node_modules/.vite/svelte_store.js?v=16f52463' does not provide an export named 'Writable'.
 

Есть ли какой-либо способ импортировать Writable<T> интерфейс в такой настройке?

Ответ №1:

Воспользуйся import type { Writable } from 'svelte/store'; .

Обновление: Начиная с TypeScript 4.5 и далее, вы должны иметь возможность выполнять весь импорт в одной строке. Так что вместо

 import type { Writable } from 'svelte/store';
import { writable, derived } from 'svelte/store';
 

вы можете сделать

 import { type Writable, writable, derived } from 'svelte/store';