Google V8 上的 Apps 脚本继承

Google Apps Script inheritance on V8

我最近注意到 V8 引擎有一个奇怪的行为。 当继承在 分离文件 中找到的 class 时,引擎无法识别基础 class,例如以下配置失败:

BaseFoo.ts

export class BaseFoo {}

SpecialFoo.ts

import { BaseFoo } from "./BaseFoo";

class SpecialFoo extends BaseFoo {}

出现错误:

ReferenceError: BaseFoo is not defined [line: 1, function: , file: SpecialFoo]

如果将两个 class 放在同一个文件中,就可以了。

我正在使用 Visual Studio 代码,并且它批准了此配置(意味着没有拼写错误)。

有什么想法吗?

如他们的 V8 Runtime 页面所述:

Caution: ES6 modules are not yet supported.

这意味着 Google Apps 脚本不处理文件的导出和导入。这有点古怪,因为所有文件都在全局范围内(并且按照文件列出的顺序),因此您可以在其他文件中引用 类。

正如 Sunny Patel 所说,V8 运行时不支持模块。 但是,您可以查看 Clasp and its TypeScript feature, which partially supports 个模块。

相关链接: