Использовать машинопись с приложениями Google скрипт
Я хотел бы использовать Typescript для моих проектов Google Apps Script (GAS), но я не могу найти способ скомпилировать мой код во что-то, что принимает GAS.
GAS не поддерживает экспорт, и Typescript, похоже, не любит получать доступ к переменным через глобальную область (он хочет импортировать/требовать, и, следовательно, экспортировать).
Я ищу любое из следующих решений, которые, по моему мнению, помогут мне работать:
1) плагин Babel или что-то подобное, что может удалить весь импорт и Инструкции экспорта вместе с их именами атрибутов (требуется, чтобы я не использовал те же имена методов, которые я не использую.
Итак:
import MyLibrary from './library';
export function greetJohn() { MyLibrary.greet('John'); }
export default { greetJohn }
Становится:
function greetJohn() { greet('John'); }
2) Измените typescript так, чтобы он мог видеть глобальную область
3) Вавилонский плагин или что-то подобное, что объединяет все .ts файлы в один .JS-файл и преобразует операторы импорта / экспорта, обрабатывая каждый файл как объект / функцию.
2 ответа:
Теперь можно использовать Typescript для разработки проектов сценариев Google Apps, но это невозможно сделать непосредственно в Редакторе сценариев приложений.
По разработать сценарий программы, используя машинопись самым простым способом является использование застежка - .
Связанные
Я рассматривал подобный сценарий в последние пару недель (не используя TypeScript, но все еще ES6/ES7).
Некоторые из вещей, которые я обнаружил, что вы можете найти полезными для того, чего вы пытаетесь достичь:
- Gas webpack plugin позволяет использовать webpack для загрузки модулей в GAS, определяя, когда вы назначаете глобальный объект, а затем генерируя функцию верхнего уровня, которую может запускать GAS. Это означает, что ваш импорт и экспорт будут обработаны по webpack, так что вам не придется их удалять.
- я не смог заставить
import * as x from y
синтаксис работать, однакоimport { x } from y
иimport x from y
работали нормально при использовании webpack.- вы можете включить ваш HTML в виде строки в ваш пакет, используяHTML loader .
Если вы не хотите использовать webpack, одно из решений-поместить весь ваш код в один файл
app.ts
, создать объект, содержащий все ваши функции, установить функции верхнего уровня, чтобы они могли быть подобраны газом. Вы также можете экспортируйте объект контейнера и используйте его в наборе тестов. При компиляции с Babel используйте плагинbabel-plugin-transform-remove-export для удаления инструкции export.const app = { onInstall: () => { ... }, onOpen: () => { ... } } const { onOpen, onInstall } = app; export { app };