¿Cómo declaro una clase de modelo en mi componente Angular 2 usando TypeScript?

Soy nuevo en Angular 2 y TypeScript y estoy tratando de seguir las mejores prácticas.

En lugar de utilizar un modelo simple de JavaScript ({}), intento crear una clase TypeScript.

Sin embargo, a Angular 2 no parece gustarle.

Mi código es:

import { Component, Input } from "@angular/core";

@Component({
    selector: "testWidget",
    template: "<div>This is a test and {{model.param1}} is my param.</div>"
})

export class testWidget {
    constructor(private model: Model) {}
}

class Model {
    param1: string;
}

y lo estoy usando como:

import { testWidget} from "lib/testWidget";

@Component({
    selector: "myComponent",
    template: "<testWidget></testWidget>",
    directives: [testWidget]
})

Recibo un error de Angular:

EXCEPCIÓN: No se pueden resolver todos los parámetros para testWidget: (?).

Entonces pensé, el modelo aún no está definido ... ¡Lo moveré a la cima!

Excepto que ahora tengo la excepción:

EXCEPCIÓN ORIGINAL: ¡No hay proveedor para el modelo!

¿Cómo logro esto?

Editar: Gracias a todos por la respuesta. Me llevó al camino correcto.

Para inyectar esto en el constructor, necesito agregarlo a los proveedores en el componente.

Esto parece funcionar:

import { Component, Input } from "@angular/core";

class Model {
    param1: string;
}

@Component({
    selector: "testWidget",
    template: "<div>This is a test and {{model.param1}} is my param.</div>",
    providers: [Model]
})

export class testWidget {
    constructor(private model: Model) {}
}

Respuestas a la pregunta(6)

Su respuesta a la pregunta