Executando verificação de segurança...
1

Não sei se existe uma forma "certa" para esse tipo de coisa.

Eu normalmente uso interface da mesma forma que outras linguagens como Java ou PHP, ou seja, mais próximo do escopo de classes mesmo.

Já o type, uso para definir as estrutura dos dados que não tem comportamentos, como DTOs ou parâmetros de funções.

Carregando publicação patrocinada...
1

Então para interface você usa para a definição das propriedades estáticas e métodos ao invés do retorno e o retorno você aplica o type?

Exemplo:

type RetornoType = {
  dado1: string;
  dado2: number;
};

interface TesteInterface {
  meuMetodo: () => RetornoType;
}

class Teste implements TesteInterface {
  meuMetodo(): RetornoType {
    return {
      dado1: 'oi',
      dado2: 123,
    };
  }
}
1