Тип "относится только к типу, но здесь используется как значение" при экспорте - PullRequest
1 голос
/ 12 июля 2020

У меня есть файл с именем types.ts, в котором есть все мои типы. Я хочу экспортировать некоторые из них, например:

export type Example {
  something: string;
}

У меня есть другой файл с именем index.ts, точка входа для моего кода. Я хочу экспортировать тип "Пример". Когда я пробую следующее:

import { Example } from "./types";

export default {
  Example
}

, я получаю следующую ошибку:

«Пример» относится только к типу, но здесь используется как значение. Ts ( 2693)

Я не уверен, как правильно экспортировать тип из другого файла. Я также пробовал следующее:

export * from "./types";
export { Example } from "./types"; 

Но это не работает, поскольку это не часть экспорта из-за моего export default, который содержит другие вещи, однако это может быть совершенно другая проблема, если это правильный способ сделать это.

Какой правильный / лучший способ добиться этого?

1 Ответ

2 голосов
/ 12 июля 2020

Когда вы выполняете

export default {
  Example
}

... вы экспортируете литерал объекта со свойством Example (записанным в сокращенной записи) в качестве экспорта модуля по умолчанию. Это означает, что ожидается, что Example будет переменной, значение которой будет скопировано в свойство Example экспортируемого объекта. Но в вашем случае Example - это тип, а не переменная.

Если вы хотите экспортировать Example в качестве экспорта модуля по умолчанию, вы бы сделали это так:

export default Example;

Если вы хотите экспортировать Example как экспорт именованного типа, вы не используете default:

export { Example };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...