小编FLi*_*ter的帖子

如何解决“类型‘字符串’不可分配给类型‘从不’”?

我试图从另一个对象/类型中获取一个新的对象/类型,但出现Type 'string' is not assignable to type 'never'错误

const Flags = {
  ONE: () => 'one',
  TWO: () => 'two',
  // ...
};

type createEnumType<T> = {[K in keyof T]: K};
type FlagsObject = createEnumType<typeof Flags>;
type FlagsKeys = keyof FlagsObject;

const keys = Object.keys(Flags) as FlagsKeys[];
let result = {} as FlagsObject;
for (const key of keys) {
  result[key] = key;// Type 'string' is not assignable to type 'never'
}

/*
Expected value and type:
result = …
Run Code Online (Sandbox Code Playgroud)

typescript

15
推荐指数
1
解决办法
4万
查看次数

获取所有 Google Script 触发器并删除它们

有没有办法从 Google Script 中的所有文档中获取(和更改/删除)所有触发器,就像我打开一样Script Editor -> Edit -> All your triggers

更新:

我添加了一些测试触发器并尝试循环所有电子表格文件,正如Pierre-Marie Richard所说:

function getAllSpreadsheetTriggers()
{
    var files = DriveApp.getFilesByType('application/vnd.google-apps.spreadsheet'),
        spreadsheets = [],
        triggers     = [];

    while(files.hasNext())
        spreadsheets.push( SpreadsheetApp.openById(files.next().getId()) );

    for (var i = 0; i < spreadsheets.length; i++)
    {
        triggers = ScriptApp.getUserTriggers( spreadsheets[i] );
        Logger.log(triggers);
    }
}
Run Code Online (Sandbox Code Playgroud)

.getUserTriggers()总是返回一个空数组。我读了这个问题,最后一个答案是“我们决定不对这个问题采取行动。触发器总是属于一个特定的脚本,其他脚本无法访问。已经澄清了文档以明确这一点。”

原来做不到?

google-apps-script gs-installable-triggers

4
推荐指数
1
解决办法
2542
查看次数

从 localStorage 获取数据(谷歌脚本)

在我的谷歌电子表格应用程序中,我在一个函数中将一些参数保存在 localStorage 中。在另一个函数中我需要检索它们。当然,我可以创建无模式对话框或侧边栏,什么时候是我的html代码和js,但是第二个函数只刷新当前工作表,所以我不需要UI。我也知道,服务器端无法访问本地存储。这是我的抽象代码:

server.gs

function menuItemClicked()
{
    // when we click on item in addon menu, this called
    // and load 'client.html'
}

function refreshCurrentSheet(params)
{
    // called by 'client.html'
    // do something else with params...
}
Run Code Online (Sandbox Code Playgroud)

client.html

<script type="text/javascript">
    google.script.run.refreshCurrentSheet( localStorage.getItem('var') );
</script>
Run Code Online (Sandbox Code Playgroud)

我在 API 中没有找到答案,该怎么做(

问题:如何在没有可见 UI 的情况下加载 html 并执行 js?

PS 将这些参数保存在服务器端的缓存中并不是一个解决方案,因为我经常在客户端中使用和更改它们

javascript google-sheets google-apps-script

3
推荐指数
1
解决办法
6496
查看次数