gpt4 book ai didi

javascript - 无法在 Google Apps 脚本表中使用类方法

转载 作者:行者123 更新时间:2023-12-02 23:18:25 25 4
gpt4 key购买 nike

我有两个文件在 typescript 中输入,然后在 .gs 中编译为谷歌应用程序脚本。我有一类带有方法的辅助函数,当我调用此方法时: flatten_ 我收到错误

TypeError: Cannot find function flatten_ in object function Utils() {...}.

我尝试过:1. 使 flatten_ 成为静态方法2. 使 flatten_ 静态属性3. 将 flatten_ 声明为公共(public)函数类所有的人都没有决心。

后端.ts

import { Utils } from './utils/_';

function onOpen() {
const ui = SpreadsheetApp.getUi();
ui.createMenu('Tracker')
.addItem('JUMP To Record', 'Jump')
.addToUi();
}

function Jump() {
const ui = SpreadsheetApp.getUi();
const prompt = ui.prompt('Submit A Tracker ID');

/** Once the user clicks ok */
if(prompt.getSelectedButton() == ui.Button.OK) {
/** If the tracker id length is less than 1 */
if(prompt.getResponseText().length < 1) {
Browser.msgBox('Submit A Valid Tracker Id');
} else {
/** Begin timer and find the tracker id record */
console.time('Jump To Tracker Id Execution');
const spreadsheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Client');
const trackerRange = spreadsheet.getRange('1:1').getValues();
const trackerColumn = trackerRange[0].indexOf('Tracker ID') + 1;
const trackerIds = Utils.flatten_(spreadsheet.getRange(1, trackerColumn, spreadsheet.getLastRow(), 1).getValues());
const recordIndex = trackerIds.indexOf(prompt.getResponseText());
console.timeEnd('Submit A Valid Tracker Id');
/** End timer and check record results */
if(recordIndex == -1) {
Browser.msgBox('Record ['+ prompt.getResponseText() + '] Could Not Be Found')
} else {
spreadsheet.setActiveRange(spreadsheet.getRange(recordIndex + 1, trackerColumn));
}
}
}
}

编译后端

// Compiled using ts2gas 3.4.4 (TypeScript 3.5.3)
var exports = exports || {};
var module = module || { exports: exports };
//import { Utils } from "./utils/_";

function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('Tracker')
.addItem('JUMP To Record', 'Jump')
.addToUi();
}
function Jump() {
var ui = SpreadsheetApp.getUi();
var prompt = ui.prompt('Submit A Tracker ID');
/** Once the user clicks ok */
if (prompt.getSelectedButton() == ui.Button.OK) {
/** If the tracker id char length is less than 1 */
if (prompt.getResponseText().length < 1) {
Browser.msgBox('Submit A Valid Tracker Id');
}
else {
/** Begin timer and find the tracker id record */
console.time('Jump To Tracker Id Execution');
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Client');
var trackerRange = spreadsheet.getRange('1:1').getValues();
var trackerColumn = trackerRange[0].indexOf('Tracker ID') + 1;
var trackerIds = Utils.flatten_(spreadsheet.getRange(1, trackerColumn, spreadsheet.getLastRow(), 1).getValues());
var recordIndex = trackerIds.indexOf(prompt.getResponseText());
console.timeEnd('Submit A Valid Tracker Id');
/** End timer and check record results */
if (recordIndex == -1) {
Browser.msgBox('Record [' + prompt.getResponseText() + '] Could Not Be Found');
}
else {
spreadsheet.setActiveRange(spreadsheet.getRange(recordIndex + 1, trackerColumn));
}
}
}
}

_.ts

export class Utils {
/**
* flatten_ : Combines array of arrays of objects into a singular array of objects
*/
flatten_(_:any): any {
return [].concat.apply([], _);
}

guidlist_(_:any): any {
let z_ = _.map(() => { return [this.guidcreate_()] });
return z_;
}

guidcreate_(): any {
let _ = () => {return (((1+Math.random())*0x10000)|0).toString(16).substring(1)};
return (_()+_()+"-"+_()+"-"+_()+"-"+_()+"-"+_()+_()+_());
}

help():void {
/** This function display a description of the class */
Logger.log(`This file houses all the helper function. The functions here will be used more than once
hence having a seperate file that contains them all. Reference the Docs for more info on an individual
function. Updated: 7/16/2019.`)
}
}

已编译_

// Compiled using ts2gas 3.4.4 (TypeScript 3.5.3)
var exports = exports || {};
var module = module || { exports: exports };

var Utils = /** @class */ (function () {
function Utils() {
}
Utils.prototype.flatten_ = function (_) {
/** Combines array of arrays of objects into a singular array of objects */
return [].concat.apply([], _);
};
Utils.prototype.guidlist_ = function (_) {
var _this = this;
var z_ = _.map(function () { return [_this.guidcreate_()]; });
return z_;
};
Utils.prototype.guidcreate_ = function () {
var _ = function () { return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1); };
return (_() + _() + "-" + _() + "-" + _() + "-" + _() + "-" + _() + _() + _());
};
return Utils;
}());
exports.Utils = Utils;

最佳答案

通过扩展我能够访问的类,我发现了这一点。

export class Utils {
iArray: Array<any>
constructor(_:Array<any>) {
this.iArray = _;
}
}

export class Flatten extends Utils {
exe(): any {
return [].concat.apply([], this.iArray);
}
}
import { Flatten } from "./utils/_";

const trackerIds = new Flatten(spreadsheet.getRange(1, trackerColumn, spreadsheet.getLastRow(), 1).getValues()).exe();

关于javascript - 无法在 Google Apps 脚本表中使用类方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57058878/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com