我正在尝试编写使用现有 JS 库的 TypeScript 代码。问题是这个库提供了一个工具,include()
, 用于在运行时根据传递给 include()
的“路径”加载 JS 类:
var LibraryClass = include('path-to-class');
但是 TypeScript 在编译时需要这些类的定义...我可以通过注释整个 include
来编译我的代码.ts 中的行(连同 var LibraryClass
)并通过 /// <reference path="someFile.ts"/>
以通常的 TypeScript 方式提供类定义或为此库创建 .d.ts 环境定义文件。
但我不知道如何忽略 include()
调用 .ts 但将它们保留在生成的 .js 中...
是否可以在 .ts 和 .js 中使用不同的变量名?例如,如果我可以有
var LibraryClassTS = include('path-to-class');
在 TypeScript 中,但以某种方式将其编译成
var LibraryClass = include('path-to-class');
如果是 JavaScript,那会解决我的问题:我会有一个空的 LibraryClassTS
.ts 中的类(同时 LibraryClass
接口(interface)定义是从 .d.ts 加载的)和运行时 LibraryClass
在 .js 中加载。
最佳答案
如果这是您唯一使用 include
的地方,那么将它放在该文件的顶部:
declare var include: any;
如果您在整个应用程序中更多地使用它,请考虑将其移动到 .d.ts
文件
但是如果您在多个项目中使用它,也许您应该考虑为它创建一个更完整的规范并将其提交给确定类型的 repo。
关于typescript - 如何忽略TypeScript中的一行但将其复制到JS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36603006/