TypeScript没有window.eval()

时间:2018-07-17 22:36:26

标签: javascript typescript eval

在JavaScript中,我可以这样做:

window.eval(userInput)

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

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

property eval does not exist on type window

如何解决这个问题?

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

1 个答案:

答案 0 :(得分:4)

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

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

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

或者您可以按照this issue(键入安全)中的说明修改窗口声明