5.6.8. Поддержка TypeScript

Начиная с версии 6.9 платформы, Studio предоставляет возможность скаффолдинга Polymer клиентов на базе TypeScript. При создании модуля Polymer клиента вы можете выбрать пресет клиента polymer2-typesript. Ниже приведены его основные отличия от версии на базе JavaScript.

Классы компонентов хранятся в отдельных файлах *.ts
myapp-component.ts:
namespace myapp {

  const {customElement} = Polymer.decorators;

  @customElement('myapp-component')
  class MyappComponent extends Polymer.Element {
  }
}
myapp-component.html
<link rel="import" href="../bower_components/polymer/polymer.html">

<link rel="import" href="./shared-styles.html">

<dom-module id="myapp-component">
  <template>
     <!-- some html markup -->
  </template>
  <script src="myapp-component.js"></script>
</dom-module>
В процессе сборки есть дополнительный этап - компиляция TypeScript

См. секцию scripts в package.json

{
  "scripts": {
    "build": "npm run compile && polymer build",
    "compile": "tsc",
    "watch": "tsc -w"
  }
}

Перед polymer build добавлена команда npm run compile, которая запускает компиляцию TypeScript (tsc).

Warning

Если вы хотите, чтобы изменения в коде классов компонентов подхватывались Studio для hot deploy, необходимо вручную выполнить команду npm run watch в каталоге modules/polymer-client.