Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Erro ao carregar a aplicação

Ao abrir a aplicação começou a exibir o erro abaixo.

Error: (SystemJS) Class extends value undefined is not a constructor or null
    TypeError: Class extends value undefined is not a constructor or null
        at execute (http://localhost:3000/js/models/Negociacao.js:12:59)
    Error loading http://localhost:3000/js/app.js

Segue o código original em TypeScript:

import { Imprimivel } from './index';

export class Negociacao extends Imprimivel {

    constructor(readonly data: Date, readonly quantidade: number, readonly valor: number) {
        super();
    }

    get volume() {
        return this.quantidade * this.valor;
    }

    paraTexto(): void {
        console.log(
            `Data: ${this.data}
            Quantidade: ${this.quantidade}
            Valor: ${this.valor}
            Volume: ${this.volume}`
        );
    }
}
4 respostas

Cole o código da sua classe Imprimivel. Aliás, a mensagem de erro indica o problema com maestria:

.Class extends value undefined is not a constructor or null

No aguardo.

Código da classe imprimivel

export abstract class Imprimivel {

    abstract paraTexto(): void;
}

Acho que descobri o que pode ser no meu código do import da classe de negociacao coloquei dessa forma:

import { Imprimivel } from './index';

Ao alterar dessa forma o erro parou de acontecer.

import { Imprimivel } from './Imprimivel';

Tem algum motivo que não poderia referenciar o barrel index.ts

export * from './Negociacao';
export * from './Negociacoes';
export * from './NegociacaoParcial';
export * from './Imprimivel';
solução!

Isso! Você só pode usar o barrel em outros módulos fora da pasta do barrel. É uma limitação do Systemjs. Em suma, a mensagem de erro não teve tanta maestria assim :)

Muito obrigado.