Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

error TS2339: Property 'View' does not exist on type 'typeof Views'.

Não entendo o erro descrito no título. Estou repetindo o mesmo código com o namespace de Views para o View.ts e para o NegociacoesView.ts, porém o typescript só está reconhecendo o NegociacoesView como um namespace de Views.

View.ts

namespace Views{
    abstract class View<T>{
        protected _elemento: JQuery;

        constructor(seletor: string){
            this._elemento = $(seletor);
        }

        update(model: T): void{
            this._elemento.html(this.template(model));
        }    

        abstract template(model: T): string;

    }
}

NegociacoesView.ts

namespace Views{

    export class NegociacoesView extends Views.View<Negociacoes>{

        template(model: Negociacoes): string{
            return `
            <table class="table table-hover table-bordered">
                <thead>
                    <tr>
                        <th>DATA</th>
                        <th>QUANTIDADE</th>
                        <th>VALOR</th>
                        <th>VOLUME</th>
                    </tr>
                </thead>

                <tbody>
                    ${model.paraArray().map(negociacao =>{
                        return `
                            <tr>
                                <td>${negociacao.data.getDate()}/${negociacao.data.getMonth()+1}/${negociacao.data.getFullYear()}</td>
                                <td>${negociacao.quantidade}</td>
                                <td>${negociacao.valor}</td>
                                <td>${negociacao.volume}</td>
                            </tr>                    
                        `
                    }).join('')}
                    <!-- join() concatena todas as strings em um string so-->
                </tbody>

                <tfoot>
                </tfoot>
            </table>
            `;
        }
    }
}

O erro está quando eu utilizo o extends Views.View

1 resposta
solução!

Fala ai José, tudo bem? Talvez tenha faltado um export na declaração da classe abstrata View, exemplo:

namespace Views {
    export abstract class View<T> {

O resto ficaria igual.

Espero ter ajudado.