В настоящее время я не совсем понимаю, когда код в файле выполняется, а когда нет. Если у меня есть файл file1.ts
, подобный следующему:
export interface myInterface {}
export function myFunction() {}
export const myConst: {}
// ... and more exports
// top-level non-exported code
if (condition) {
myConst = ...
}
И file2.ts
, содержащий один из следующих элементов:
import { myInterface } from "./file1.ts"
import * from "./file1.ts"
import * as file1 from "./file1.ts"
import "./file1.ts"
Как отличается ли поведение? Когда выполняется код верхнего уровня , который не был экспортирован в file1.ts
, и когда он не выполняется? Выполняется ли он, даже когда импортируется только указанный c экспорт (см. Первый вариант)?
Это меня сейчас сводит с ума, и я ничего не нашел об этом на странице справочника TypeScript для модулей .