假设我们在 2 个单独的文件中有 2 个简单的 TypeScript 类:
namespace A{
export abstract class ItemBase {
id:number=432;
}
}
Run Code Online (Sandbox Code Playgroud)
///<reference path="B.ts"/>
namespace A{
export class ItemType extends A.ItemBase{}
}
Run Code Online (Sandbox Code Playgroud)
///<reference path="C.ts"/>
let a:A.ItemType=new A.ItemType();
Run Code Online (Sandbox Code Playgroud)
使用扣环推动后一切正常
但是,如果我将 C.ts 文件的名称更改为 AA.ts,则会出现错误:
TypeError: Cannot read property "prototype" from undefined. (row 14, file „AA”).
如果我不实例化 Code.ts 中的 ItemType 类,问题甚至存在。
ts2gas 似乎extends在代码转译过程中没有考虑关键字并将输出的 gs 文件设置为相应的 ts 文件顺序。因此,如果我们在扩展类文件之前命名扩展类文件(按字母顺序),我们会得到一个错误。
在开发过程中,我是否必须注意 ts 文件名的正确顺序?我是否必须附加某种处理 gs 文件加载顺序的机制?当 gs 文件已经被转译时,这对我来说似乎是多余的。转译过程 (ts2gas) 应该处理以 TypeScript 方式使用的正确类扩展策略。如果 ts2gas 可以使用原型将 TypeScript …
我有一台运行 macOS 11.4 的 Mac。我在具有相同操作系统的同一台机器上(广泛地)使用了clasp,但最近我不得不擦除我的 SSD 并重新安装所有东西。
我已经使用 macOS 安装程序 (node-v14.17.3.pkg) 安装了 node.js,其中包括 npm。
然后我通过带有sudo npm install @google/clasp -g.
上述过程反映了我第一次安装时所做的事情,尽管它们本来是早期版本(可能是一年前)。
现在,当我尝试运行 clasp(带或不带选项)时出现错误,我希望有人可以帮助诊断?
Error: ENOENT: no such file or directory, open 'package.json'
at Object.openSync (fs.js:498:3)
at Object.readFileSync (fs.js:394:35)
at file:///usr/local/lib/node_modules/@google/clasp/node_modules/ts2gas/src/index.js:35:35
at ModuleJob.run (internal/modules/esm/module_job.js:169:25)
at async Loader.import (internal/modules/esm/loader.js:177:24)
at async Object.loadESM (internal/process/esm_loader.js:68:5) {
errno: -2,
syscall: 'open',
code: 'ENOENT',
path: 'package.json'
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试开始编辑绑定到 Google 表格的 Google Apps 脚本。
我不明白记录在案的部分
Structure Code. clasp automatically converts your flat project on script.google.com into folders. For example:
Run Code Online (Sandbox Code Playgroud)
???测试/幻灯片.gs
???测试/sheets.gs
???测试/
? ?? 幻灯片.gs
? ?? 表格.gs
当我在 script.google.com 上看到我的项目时,它们只是按名称列出,我看不到任何文件夹结构。
我能够克隆 PROJECT_ID 并下载了 3 个文件
克隆了 3 个文件。
?? 应用脚本.json
?? 代码.js
?? 旧代码.js
正好到我运行 clasp 命令的文件夹。
我看不到它是如何为我创建文件夹的。
我应该为每个脚本创建一个文件夹吗?
提前致谢
有没有一种简单的方法可以不在 Google Apps 脚本项目中对机密进行硬编码?
我正在使用 clasp 并按照本指南中所述在 Typescript 中进行开发。
目前,我的脚本(Main.ts)将有一些硬编码的秘密,我不希望这些秘密出现在我的版本控制中,并且理想情况下可以根据某些环境变量进行交换。
我正在使用Typescript(通过clasp工具)开发Google Apps脚本(GAS).
我通过运行导入了类型定义npm i -S @types/google-apps-script.
有些类型很长,例如:
let sheet: GoogleAppsScript.Spreadsheet.Sheet
Run Code Online (Sandbox Code Playgroud)
有没有办法在文件中定义缩写?例如,
declare Sheet = GoogleAppsScript.Spreadsheet.Sheet
Run Code Online (Sandbox Code Playgroud)