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

110
Visualizações
Automatically create a boolean type from any interface in typescript

I have this example Interface:

interface Input {
    api_method: string;
    ip: string;
    utc_millis: number;
    user_agent: string;
    rr_sets: {
        name: string;
        rr_type: string;
        ttl: number;
        value: string;
    }[];
}

and want to automatically create this interface from it:

interface Output {
    api_method: boolean;
    ip: boolean;
    utc_millis: boolean;
    user_agent: boolean;
    rr_sets: {
        name: boolean;
        rr_type: boolean;
        ttl: boolean;
        value: boolean;
    }[];
}

From the documentation Here i found out that this:

type Output= {
    [Key in keyof Input]: boolean;
};

will create this type:

type Output = {
    api_method: boolean;
    ip: boolean;
    utc_millis: boolean;
    user_agent: boolean;
    rr_sets: boolean; 
}

How would that be done with any nested type/interface?

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

0

You can use a conditional in your mapped type:

interface Input {
  api_method: string;
  ip: string;
  utc_millis: number;
  user_agent: string;
  rr_sets: {
    name: string;
    rr_type: string;
    ttl: number;
    value: string;
  }[];
}

type AllBoolean<T> = {
  [K in keyof T]: T[K] extends Array<infer U> ? AllBoolean<U>[] : boolean
}

type Output = AllBoolean<Input>
const output_test: Output = {
  api_method: true,
  ip: true,
  utc_millis: false,
  user_agent: true,
  rr_sets: [{
    name: true,
    rr_type: true,
    ttl: false,
    value: true,
  }]
}
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