[英]When is TypeScript top-level non-export code executed?
我目前对文件中的代码何时实际执行以及何时不执行感到困惑。 如果我有一个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
中没有导出的顶层代码什么file1.ts
执行,什么时候不执行? 即使仅导入特定导出,它是否也会执行(请参阅第一个变体)?
这让我现在很疯狂,我在模块的TypeScript 手册页面上没有找到任何关于它的信息。
多个条件决定 TypeScript 模块是否包含在最终的、转译的 JavaScript 文件中:
class
、 interface
等)。importsNotUsedAsValues
来控制行为。import type
和export type
。有关更多详细信息,请查看 TypeScript 2.8 发行说明中的以下部分: 仅类型导入和导出
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.