Я разрабатываю общий модуль машинописи для некоторых констант, используемых в проектах.
Вот моя файловая структура
my-common
├── constants
│ ├── index.ts
│ ├── status.ts
│ └── type.ts
├── dist
│ └── (compiled files)
├── index.ts
├── locales
│ ├── en
│ │ ├── index.ts
│ │ ├── status.ts
│ │ └── type.ts
│ ├── index.ts
│ ├── fr
│ │ ├── index.ts
│ │ ├── status.ts
│ │ └── type.ts
│ └── zh-hk
│ ├── index.ts
│ ├── status.ts
│ └── type.ts
├── node_modules
│ └── (modules)
├── package.json
└── tsconfig.json
А есть пример файлов
Константы / status.ts
export enum UserStatus {
INACTIVE = -1,
NOT_VERIFIED = 0,
VERIFIED = 1,
ACTIVE = 10
}
export enum WorkspaceStatus {
INACTIVE = -1,
ACTIVE = 10
}
локали / о / status.ts
export enum UserStatus {
INACTIVE = "Inactive",
NOT_VERIFIED = "Not Verified",
VERIFIED = "Verified",
ACTIVE = "Active"
}
export enum WorkspaceStatus {
INACTIVE = "Inactive",
ACTIVE = "Active"
}
константы / index.ts, locales / en / index.ts
import * as status from "./status";
import * as type from "./type";
export { status, type };
локали / index.ts
import * as en from "./en";
import * as tc from "./zh-hk";
import * as fr from "./fr";
const obj = { en, fr, "zh-hk": tc };
export default obj;
index.ts
import * as constants from "./constants";
import locales from "./locales";
export default { ...constants, locales };
Ошибка при наборе текста в операторе экспорта index.ts :
[ts] Default export of the module has or is using private name '"/path/to/module/locales/en/index"'.
[ts] Default export of the module has or is using private name '"/path/to/module/locales/fr/index"'.
[ts] Default export of the module has or is using private name '"/path/to/module/locales/zh-hk/index"'.
Любая идея, почему существует такая ошибка и какое-либо решение для нее.
Спасибо.
EDIT:
когда я изменяю оператор экспорта на locales / index.ts , например:
import * as en from "./en";
import * as tc from "./zh-hk";
import * as fr from "./fr";
export default { en, fr, "zh-hk": tc } as any;
Теперь его можно экспортировать, но в VSCode нет завершения кода после того, как я набрал common.locales.en
.