Typescript 谷歌应用程序脚本中的Blob与Blob源
我正在使用它,它可以让你用typescript开发你的谷歌应用程序脚本 在我的脚本中,我将一张谷歌工作表转换成一团PDF,然后将其上传到谷歌硬盘 代码运行良好,但我在正确使用vs.类型以保持TypeScript满意方面遇到了问题 安装程序 我在文件的开头声明了一些类似的类型缩写:Typescript 谷歌应用程序脚本中的Blob与Blob源,typescript,google-apps-script,blob,Typescript,Google Apps Script,Blob,我正在使用它,它可以让你用typescript开发你的谷歌应用程序脚本 在我的脚本中,我将一张谷歌工作表转换成一团PDF,然后将其上传到谷歌硬盘 代码运行良好,但我在正确使用vs.类型以保持TypeScript满意方面遇到了问题 安装程序 我在文件的开头声明了一些类似的类型缩写: type Sheet = GoogleAppsScript.Spreadsheet.Sheet; type SS = GoogleAppsScript.Spreadsheet.Spreadsheet; type GBl
type Sheet = GoogleAppsScript.Spreadsheet.Sheet;
type SS = GoogleAppsScript.Spreadsheet.Spreadsheet;
type GBlob = GoogleAppsScript.Base.Blob;
type GBlobSource = GoogleAppsScript.Base.BlobSource;
我有一个带有此签名的函数:
getPdfBlob(sheet: Sheet, pdfName: string): GBlob
我在代码中执行以下操作:
var pdfBlob = getPdfBlob(mySheet, 'aPdfName');
var file = DriveApp.createFile(pdfBlob);
问题
我的IDE抱怨说,DriveApp.createFile
希望typeBlobSource
作为参数,而不是Blob
如果我尝试像这样将Blob强制转换到BlobSource中:
var file = DriveApp.createFile(<GBlobSource>pdfBlob);
var file=DriveApp.createFile(pdfBlob);
我的IDE抱怨:
将类型“Blob”转换为类型“BlobSource”可能是错误的,因为两种类型都没有充分重叠。如果这是有意的,请先将表达式转换为“未知”
类型“Blob”中缺少属性“getBlob”,但类型“BlobSource”中需要属性“getBlob”
正如我提到的,代码以这种方式运行良好。我只是想让我的类型声明正确,以便TypeScript继续增加价值
从它看来,Blob实现了BlobSource
,所以我不确定为什么不能“向上转换”回BlobSource
。这可能是TypeScript定义的错误吗
如果您能提供关于问题所在/处理问题的正确方法的任何信息,我们将不胜感激。我们所需要的一切都是从
接口BlobSource
实现类Blob
。取代
导出接口Blob扩展BlobSource{
更新
DefinitelyTyped已更新
为此您当然可以尝试修改本地
.d.ts
文件,以反映Blob实现了blobsource,并查看这是否解决了问题。如果是这样,请将您的PR设置为DefinitelyTypedRepo,并为每个人修复:)