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

Pode usar OOP em projeto Nextjs 14.X??

Estou em duvida se devo usar POO no meu projeto, pq recebo um json de um api do YouTrack. O objetivo eh criar relatórios em uma tabela de cada cliente, sao 2 tipos de relatorios(mensal) fora o semanal

eu ate agr fiz assim:

export type IssuesProps = {
  data: Array<{
    map(arg0: (issue: any) => any): unknown
    id: string,
    created: number,
    description: string
    idReadable: string,
    numberInProject: number,
    parent: [{
      trimmedIssues: [{
        idReadable: string,
        summary: string,
      }]
    }],
    project: {
      name: string,
    },
    reporter: {
      fullName: string,
    }
    resolved: number,
    subtasks: [{
      trimmedIssues: [{
        idReadable: string,
        summary: string,
      }]
    }],
    summary: string,
    timeTracking: {
      enabled: boolean,
      workItems: Array<WorkItemProps>
    }
  }>
}

export interface WorkItemProps {
  author: string,
  date: null,
  duration: {
    minutes: number,
  },
  text: string,
  type: {
    name: string
  }
}

export type KubeReviewProps = {
  name: string,
  hours: number
}

se for viavel fazer, como fica organizaco a pasta ficaria class/ como fica os tipos?

Agradeço desde ja a atencao!!

1 resposta
solução!

Oi Samuel, tudo bem?

Pode ser usada em projetos Next.js, mas é importante lembrar que o JavaScript, que é a base do Next.js, é uma linguagem de programação orientada a protótipos, não uma linguagem orientada a objetos clássica. Isso significa que, embora você possa usar conceitos de POO, como classes e herança, eles funcionam de maneira um pouco diferente em JavaScript do que em linguagens como Java ou C#.

No seu caso, você poderia organizar suas classes em uma pasta classes/ ou models/ (este último é bastante comum em projetos JavaScript). Cada classe seria um arquivo separado dentro dessa pasta. Por exemplo, você poderia ter um arquivo Issue.ts para a classe Issue e um arquivo WorkItem.ts para a classe WorkItem.

Em relação aos tipos, você pode definir os tipos dentro do próprio arquivo da classe.

Um abraço e bons estudos.