Typescript — скомпилированные константы

#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 функцией (а не функцией времени выполнения).