Устаревший оригинальный вопрос:
У меня большая проблема с машинописью. У меня есть файл (не класс) с экспортированными константами, перечислениями и функциями.
Некоторые функции используют const и перечисления, определенные в самом файле. При отладке я обнаружил, что они не определены, что препятствует правильной работе функций.
Когда я получаю доступ к перечислениям и константам "извне", они работают как положено.
Вот один пример:
export enum UltimateMeasures {
ULTIMATE_CARE_1 = 1500,
ULTIMATE_CARE_2,
}
export const UltimateMeasuresLabels: Map<UltimateMeasures, string> = new Map([
[UltimateMeasures.ULTIMATE_CARE_1, "Ultima foo"],
[UltimateMeasures.ULTIMATE_CARE_2, "Ultima bar"],
]);
export function ultimateMeasuresLabelProvider(key: any): string {
if (Array.isArray(key)) {
const labels = [];
for (const k of key) {
labels.push(UltimateMeasuresLabels.get(k));
}
return labels.join(", ");
}
return UltimateMeasuresLabels.get(key);
}
console.log(ultimateMeasuresLabelProvider(UltimateMeasures.ULTIMATE_CARE_1));
Когда я использую UltimateMeasures из другого модуля, они инициализируются, когда я вызываю ultimateMeasuresLabelProvider, они не определены внутри функции, так что я могу сделать, чтобы сделать они определены для областей без использования классов и инициализаторов?
исправлена ошибка в вызове для получения
ОБНОВЛЕНИЕ:
Извините, но ошибка была представлена только отладчиком , который не знал о базовой реализации. Интересно отметить, что если бы я создал внутреннее const awareOfUltimateMeasuresLabels и указал его на экспортированный UltimateMeasuresLabels, то и отладчик работал бы так, как предполагалось.
Спасибо за ответы, я оставляю это здесь на случай, если кто-то еще столкнется с той же ситуацией, чтобы дать надежду, что в конце это сработает:)
export function ultimateMeasuresLabelProvider(key: any): string {
const awareOfUltimateMeasuresLabels = UltimateMeasuresLabels;
if (Array.isArray(key)) {
const labels = [];
for (const k of key) {
labels.push(awareOfUltimateMeasuresLabels.get(k));
}
return labels.join(", ");
}
return awareOfUltimateMeasuresLabels.get(key);
}