TypeScript 没有 window.eval()

TypeScript doesn't have window.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(类型安全)

中所述修改 window 声明