【发布时间】:2017-06-24 22:16:14
【问题描述】:
我发现我对 target 和 lib 选项以及它们如何与源代码中支持的功能交互感到困惑。我觉得文档需要改进一些,所以在提出问题之前在这里询问。
我天真地假设 target 指定了输出代码需要运行的 JS 版本(添加了一个模块加载器)。因此,我们始终可以在源代码中使用 TS 支持的所有高级 JS 功能(如对象扩展),并且编译器会为我们指定的目标生成合适的代码。我假设它手头有 polyfill 等,并且代码只会在目标 VM 上运行。
但是,lib 选项的文档指定默认库取决于目标。但是,库会影响可用的源类型,从而影响我们可以使用的代码。因此,我们可以使用的源特征取决于目标。这不像我预期的那样。我应该说我对 lib 的理解是它们使用不同的 API 进行打字,尽管文档并没有真正说明它们是什么。
我可以看到,这里有一些不依赖于类型的语言特性和其他依赖于类型的特性。但目前尚不清楚这是否是造成这种情况的部分原因。
有人可以澄清一下吗?
第二个问题是,为什么 ES6 和 ES2015 库通常被记录为相同的东西。
谢谢
【问题讨论】:
标签: typescript