Como declaro uma classe de modelo no meu componente Angular 2 usando o TypeScript?

Eu sou novo no Angular 2 e TypeScript e estou tentando seguir as práticas recomendadas.

Em vez de usar um modelo JavaScript simples ({}), estou tentando criar uma classe TypeScript.

No entanto, o Angular 2 não parece gostar.

Meu código é:

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;
}

e eu estou usando-o como:

import { testWidget} from "lib/testWidget";

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

Estou recebendo um erro do Angular:

EXCEÇÃO: Não é possível resolver todos os parâmetros para testWidget: (?).

Então pensei: Modelo ainda não está definido ... Vou movê-lo para o topo!

Exceto agora, recebo a exceção:

EXCEÇÃO ORIGINAL: Nenhum fornecedor para Model!

Como faço isso?

Edit: Obrigado a todos pela resposta. Isso me levou ao caminho certo.

Para injetar isso no construtor, preciso adicioná-lo aos provedores no componente.

Isso 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) {}
}

questionAnswers(6)

yourAnswerToTheQuestion