javascript - TypeScript 没有 window.eval()

标签 javascript typescript eval

在 JavaScript 中我可以做到:

window.eval(userInput)

在客户端.js文件没有任何问题。

但在 TypeScript 中,window.eval()不存在。我收到错误:

property eval does not exist on type window

我怎样才能解决这个问题?

我想使用 eval() 的原因是执行一些用户创建的代码。 eval调用必须在全局范围内完成,因为用户代码依赖于我之前已经用 <script> 加载的一些其他代码标签。

最佳答案

有几种方法可以做到这一点。

使用类型断言(类型不安全,但又快又简单):

(window as any).eval("1 + 1");

或者您可以按照this issue 中的描述修改窗口声明(类型安全)

关于javascript - TypeScript 没有 window.eval(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51391086/

相关文章:

angular - 有什么方法可以防止以 Angular 破坏组件?

javascript - 在javascript中计算字符串值,而不是使用eval

javascript - Jquery拖放图像但原始/源图像丢失

javascript - 如何使用 d3 的 .style() 方法而不是在 .axis 路径 {} 的样式标签中使用 CSS 来设置样式?

javascript - 在我的 Angular 2 项目中导入 javascript 文件

asp.net - MVC6、tsd 和打字

Python 3.5 如何摆脱类函数中的 eval

ruby - Ruby 中的 `eval` 何时合理?

javascript - 动态复选框列表不显示数据

javascript - 我可以查看时间范围内的空闲时间吗