TypeScript 没有 window.eval()

Roy*_*son 5 javascript eval typescript

在 JavaScript 中我可以这样做:

window.eval(userInput)
Run Code Online (Sandbox Code Playgroud)

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

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

property eval does not exist on type window
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

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

you*_*rth 4

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

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

(window as any).eval("1 + 1");
Run Code Online (Sandbox Code Playgroud)

或者您可以按照本期所述修改窗口声明(类型安全)