Ошибки машинописного текста при импорте «неэкспортированного» типа, даже если он экспортирован - PullRequest
0 голосов
/ 02 марта 2019

Я использую Typescript, React & Redux (при необходимости).Структура моего проекта:

/project
  /src
    /actions
      index.ts
      actions.ts

index.ts

import {
    Action,
} from "./actions";

export { Action }

Я реэкспортирую Actions в index.ts, чтобы другие файлы (не находящиеся под/actions каталог) можно импортировать тип Actions, используя import { Action } from "./actions"

actions.ts

// These are the general structures create each
// async action
type Request<T>  = { request: T }
type Response<T> = { response: T }
type Err         = { error: string }

// Alias common types for requests & responses
type EmptyRequest = Request<null>
type ValueRequest = Request<{ value: number }>

export type Action
    // UI Actions
    = ({ type: "INCREMENT_COUNTER", delta: number })
    | ({ type: "RESET_COUNTER" })
    // Aync Actions
    | ({ type: "SAVE_COUNT_REQUEST" } & ValueRequest)
    | ({ type: "SAVE_COUNT_SUCCESS" } & Response<{}>)
    | ({ type: "SAVE_COUNT_FAILURE" } & Err)

Я получаю эту ошибку:

Type error: Module '"<snipped path>"' has no exported member 'Action'.
TS2305

Когда я пытаюсь импортировать Action куда угодно .

Есть идеи?

1 Ответ

0 голосов
/ 02 марта 2019

Убедитесь, что вы используете именованный импорт, а не импорт по умолчанию при импорте действий:

// index.ts
import { Actions } from './actions';
export { Actions }
// elsewhere
import { Actions } from './path/to/src/action';

Или используйте экспорт по умолчанию как в индексе, так и в других местах:

// index.ts
import { Actions } from './actions';
export default Action;
// elsewhere
import Actions from './path/to/src/action';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...