#node.js #typescript
#node.js #typescript
Вопрос:
Вот сценарий:
у меня есть некоторый код, который работает следующим образом:
const noteProcess:Process = new ProcessBuilder<Note>().addSteps(...).build();
export function processNote(note:Note):Promise<Note>{
return noteProcess.process(note);
}
Есть ли способ принудительно constant
скомпилировать / перенести вышеуказанное в конечный продукт, а не в init? Там нет ничего, что указывало бы на наличие какой-либо разницы между запусками.
Комментарии:
1. Если вам нужно такое поведение, возможно, стоит поискать плагины сообщества для других расширяемых транспиляторов (например, Babel).
Ответ №1:
Если бы TypeScript оценивал ваш исходный код, как это делает виртуальная машина JS runtime, тогда да, это было бы возможно, но tsc
не выполняет ваш код.
На то есть веская причина: это может вызвать потенциальные побочные эффекты (например, запуск нечистых или неидемпотентных операций при каждой компиляции).
Исключением являются const
перечисления, которые являются специфичной для компилятора TypeScript функцией (а не функцией времени выполнения).