Blob против Blob Source в скрипте Google Apps - PullRequest
0 голосов
/ 29 декабря 2018

Я использую clasp , который позволяет вам разрабатывать скрипт Google Apps в машинописном тексте.

В своем скрипте я конвертирую лист Google в Blob of PDF, а затем загружаю егов Google Drive.

Код работает нормально, но у меня возникают проблемы при работе с типами Blob против BlobSource , чтобы обеспечить удовлетворение TypeScript.

Настройка

В начале моего файла я объявил некоторые сокращения типа, подобные этому:

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 хочет ввести в качестве параметра BlobSource, а не Blob.

Если я попытаюсь привести Blob к BlobSource следующим образом:

var file = DriveApp.createFile(<GBlobSource>pdfBlob);

Моя IDE жалуется:

Преобразование типа 'Blob' в тип 'BlobSource' может бытьошибка, потому что ни один тип не совпадает с другим.Если это было сделано намеренно, сначала преобразуйте выражение в «unknown».

Свойство getBlob отсутствует в типе «Blob», но требуется в типе «BlobSource».

Как яупомянутый код работает нормально таким образом.Я просто хочу, чтобы мои объявления типов были правильными, поэтому TypeScript продолжает добавлять значение.

Из документации похоже, что Blob реализует BlobSource, поэтому я 'Я не уверен, почему я не могу «переориентировать» обратно на BlobSource.Может ли это быть ошибкой в ​​определениях TypeScript?

Любая информация о проблеме здесь / правильном способе ее решения будет принята с благодарностью.

1 Ответ

0 голосов
/ 19 июня 2019

Все, что нам нужно, это реализовать Class Blob из Interface BlobSource.Замените строку на

export interface Blob extends BlobSource {

Обновления

Определенно тип был обновлен для этого https://github.com/DefinitelyTyped/DefinitelyTyped/pull/36279

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...