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 个模块。
相关链接:
我最近注意到 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 个模块。
相关链接: