Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

97
Visualizações
Can we create an array of strings from a type/interface keys?

Suppose there's type or interface named NumberLookupCriteria:

type NumberLookupCriteria = {
  dialCode: string;
  phoneNumber: string;
}

or

interface NumberLookupCriteria {
  dialCode: string;
  phoneNumber: string;
}

Can we somehow manage to get all the keys as an JS array of strings like this:

const keys = ['dialCode','phoneNumber']

Any idea?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

No you can't because types and interfaces doesn't exists at runtime.

A workaround can be the use of class

View ts playground

class NumberLookupCriteria {
    constructor(
        readonly dialCode: string ="",
        readonly phoneNumber: string ="",
    ) {}
}

const arrayKey = (Object.keys(new NumberLookupCriteria()))

console.log(arrayKey) // ["dialCode", "phoneNumber"]

const test: NumberLookupCriteria = {
  dialCode: "a",
  phoneNumber: "b"
} 
// OK

const test: NumberLookupCriteria = {
  dialCode: "a"
} 
// KO: Property 'phoneNumber' is missing in type '{ dialCode: string; }' but required in type 'NumberLookupCriteria'

There is many post about it:

Get keys of a Typescript interface as array of strings
Get Type keys in TypeScript

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda