typescript - 如何忽略TypeScript中的一行但将其复制到JS?

标签 typescript

我正在尝试编写使用现有 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/

相关文章:

node.js - 使用 typescript 2 使用 sequelize 模型扩展 express 请求对象

javascript - 无法读取未定义的属性 "toFixed"

typescript - 如何通过CDK设置注册目标的端口

javascript - Typescript nodejs - 正则表达式模式在变量内不起作用

Angular 2如何在内存中存储项目

typescript - 为什么 Typescript Union + 映射类型在使用和不使用泛型的情况下工作方式不同

javascript - 所有 NextJS 页面都有几乎相同的 JS 包大小

node.js - 在单独的函数中进行类型检查在 typescript 中不起作用

javascript - Typescript - 具有静态成员的类与具有常量成员的命名空间的区别

typescript - 在 TypeScript 中合并两个对象,无需检查键是否存在