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

DateHelper not a function

Olá, vou testar no console o meu DateHelper e ele diz que não é uma função mas não consigo encontrar o erro na minha classe ... segue o console e o meu codigo :

DateHelper.textoParaData(`11/02/1999`)
VM83:1 Uncaught TypeError: DateHelper.textoParaData is not a function
    at <anonymous>:1:12
(anonymous) @ VM83:1
DateHelper.textoParaData('11/02/1111')
VM150:1 Uncaught TypeError: DateHelper.textoParaData is not a function
    at <anonymous>:1:12
(anonymous) @ VM150:1
DateHelper.textoParaData(`1999/02/25`)
VM167:1 Uncaught TypeError: DateHelper.textoParaData is not a function
    at <anonymous>:1:12

Agora o meu codigo :

class DateHelper {

    dataParaTexto(data) {

        return `${data.getDate()}/${data.getMonth()+ 1}/${data.getFullYear()}`;

    }
    textoParaData(texto){

        return new Date(...texto.split('-').map((item,indice) => item - indice % 2));

    }
}
2 respostas

Boa tarde! Como vai?

O problema é que vc está tentando usar uma função de um objeto sem antes instanciar ele! Nesse sentido, o correto seria fazer:

new DateHelper().textoParaData(`11/02/1999`);

No entanto, fazendo isso vc irá obter outro erro pq sua função textoParaData() está esperando receber um objeto da classe Date e vc está passando uma string. Então, para que seu código fique sem erros vc deverá fazer:

new DateHelper().textoParaData( new Date(`11/02/1999`) );

Grande abraço e bons estudos!

solução!

Gabriel esta correto, mas se você já chegou na parte de métodos estáticos, esqueceu de definir os métodos como estáticos. Dá uma conferida nessa aula sobre o modificador static:

class DateHelper {

    static dataParaTexto(data) {

        return `${data.getDate()}/${data.getMonth()+ 1}/${data.getFullYear()}`;

    }
    static textoParaData(texto){

        return new Date(...texto.split('-').map((item,indice) => item - indice % 2));

    }
}