Búsqueda de sitios web

ember.js - Crear archivo de declaración TypeScript para EmberJS


Estoy intentando crear un archivo de declaración para EmberJS. Intento crear solo la declaración necesaria para crear la aplicación starter-kit.

var App = Em.Application.create();

App.MyView = Em.View.extend({
  mouseDown: function() {
    window.alert("hello world!");
  }
});

Intenté varias cosas como crear un módulo llamado Em y crear interfaces dentro de él, pero no logré hacerlo bien.

Respuesta #1

Basado en tu ejemplo, esto agrega tipado alrededor de los elementos que estás utilizando. He hecho suposiciones, como que Application.create() devuelve un Application; puedes ajustar el ejemplo según lo necesites.

declare module Em {
    class Application {
        static create() : Application;
        MyView: View;
    }

    class View {
        static extend(extender: {}) : View;
    }
}

var App = Em.Application.create();

App.MyView = Em.View.extend({
  mouseDown: function() {
    window.alert("hello world!");
  }
});

Respuesta #2

Si estás creando un archivo de definición con el propósito de comprender, o si solo estás intentando crear una definición de ember, entonces podrías querer revisar este proyecto de GitHub:

definiciones de TypeScript para un montón de bibliotecas populares

Fue de gran ayuda para mí, ayudándome a comprender la gimnasia de definición de tipos que se requiere para crear una definición de tipo de biblioteca útil (principalmente debido a los estilos de definición/uso de la API de JavaScript tan variados que existen).

Alternativamente, si solo quieres una definición de ember, solo toma el archivo :)