ExtJS classes written in TypeScript

Usage no npm install needed!

<script type="module">
  import extts from 'https://cdn.skypack.dev/extts';



Runtime library creating ExtJS classes from compiled TypeScript modules with classes.

Also contains tools for generating compatible definition files.


import define, { extend } from 'extts'; // correct path to this module

// needed to override default TypeScript __extends function
// https://github.com/Microsoft/TypeScript/issues/1622
var __extends = extend;

export default define(class extends Ext.button.Button {
    // custom implementation of button inherited from Ext.button.Button

import Button from './button';

const b = new Button({
    text: 'OK'


Main concepts

  • ES6 modules are embraced (instead of Ext.Loader)
  • by default creates anonymous classes
    • no global polution (other than Ext itself)
    • can't use aliases (other than Ext built-ins)
  • Restrictions
    • no alias includes xtype (Ext.widget)
    • avoid singleton classes (rather use pure TypeScript construct)
    • TypeScript constructor and Ext constructor are in conflict (because super() and callParent() differ)
      • define ctor method that will be used as Ext constructor

Open topics

  • static function vs. var
    • Ext.EventObject
    • Ext.Loader

State of the art