【问题标题】:Understanding .tsconfig file了解 .tsconfig 文件
【发布时间】:2019-10-06 10:36:55
【问题描述】:

作为初学者,尽管查阅了文档,但我无法理解某些术语的意义。

在我的 .tsconfig 文件中,我有

emitDecoratorMetadata

sourceMap

esModuleInterop -> 允许从没有默认导出的模块进行默认导入。这不会影响代码发出,只是类型检查。 有人可以使上述定义尽可能地易于理解吗?这是否意味着我们只能导入而不能导出?

例如,emitDecoratorMetadata 在其中一个答案中的定义是

为源中的装饰声明发出或不发出设计类型元数据

源代码中的装饰声明是什么意思?此外,如果有人能用更人性化的术语来解释 sourceMap,那将非常有帮助。

更新:@Antonis 写了一个惊人的答案,但最后一部分看起来很模糊。我在这里创建了一个单独的帖子:

Understanding esModuleInterop in tsconfig file 我经历过的资源:

  1. https://www.typescriptlang.org/docs/handbook/compiler-options.html
  2. https://basarat.gitbooks.io/typescript/docs/project/tsconfig.html
  3. what is the purpose of tsconfig.json?

【问题讨论】:

  • 您将esModuleInterop 的描述与allowSyntheticDefaultImports 的描述混淆了。后者允许从没有默认导出的模块进行默认导入,仅影响类型检查。前者确实影响代码发出,合成默认导出,并暗示后者。
  • @AluanHaddad 你的评论对我来说有点技术性。你能否让你的这行The former does affect code emit, synthesizing a default export, and implying the latter. 不那么技术性,请在回答部分详细回答
  • 当然。我很快就会这样做

标签: typescript


【解决方案1】:

emitDecoratorMetadata - 例如,在 Angular 中,我们得到了 @Injectable@Component@NgModule 装饰器。

这些装饰器使类能够发出携带所需信息的元数据,以便 Angular 了解该类需要和在其构造函数中使用的依赖类型,以及稍后在运行时如何处理该类

也检查这个答案here

sourceMap - Source maps 携带原始源代码的信息。当浏览器运行缩小、模糊和捆绑的代码时,我们需要这种地图。地图反映了捆绑的原始代码,因此我们可以稍后对其进行调试

esModuleInterop - 首先阅读 CommonJS 模块和 ESModules。其次,这几乎意味着如果模块没有一个默认导出,您仍然可以从该模块默认导入一些东西

【讨论】:

  • 非常感谢安东尼斯的回答。 这几乎意味着如果模块没有一个默认导出,您仍然可以从该模块默认导入一些东西如果没有任何导出默认值而不是我认为的唯一用例导入默认是初始化一些东西?像单身?
  • 它会影响您导入某些内容的方式。您导入所有内容,因为有默认值。也检查这个答案 -> stackoverflow.com/questions/48785451/…
  • 我无法通过阅读该问题的答案来理解它。无论如何,我问了一个类似的具体问题,如果你能回答吗? stackoverflow.com/questions/56238356/…
【解决方案2】:

官方文档可能有助于全面了解 .tsconfig 文件。

目录中存在 tsconfig.json 文件表示 directory 是 TypeScript 项目的根目录。 tsconfig.json 文件 指定编译所需的根文件和编译器选项 项目。

更多信息在这里:tsconfig.json

【讨论】:

    猜你喜欢
    • 2019-10-07
    • 1970-01-01
    • 2021-01-11
    • 2023-01-20
    • 2019-01-28
    • 2017-03-18
    • 2020-04-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多