A repository of tips and tricks (in both English and French) curated by Mirego’s engineering team.
  • frontend
  • javascript
  • typescript

This is not the headers you’re looking for

interface RequestInit {
  body?: any;
  cache?: RequestCache;
  credentials?: RequestCredentials;
  headers?: Headers | string[][]; // <---- Wat?
  integrity?: string;
  keepalive?: boolean;
  method?: string;
  mode?: RequestMode;
  redirect?: RequestRedirect;
  referrer?: string;
  referrerPolicy?: ReferrerPolicy;
  window?: any;
}

interface Headers {
  append(name: string, value: string): void;
  delete(name: string): void;
  forEach(callback: ForEachCallback): void;
  get(name: string): string | null;
  has(name: string): boolean;
  set(name: string, value: string): void;
}

RequestInit, c'est le deuxième paramètre que prend la function fetch. Les typings de TypeScript viennent de m'apprendre que ça peut prendre soit un objet Headers, ou une "matrice" de string. Par exemple:

const headers = [
  ['content-type', 'application/json'],
  ['authorization', 'bearer pifpafpouf']
];

J'avais toujours utilisé un hash, mais officiellement ça ne semble pas être supporté. C'est juste les browsers qui étaient trop gentil et qui me laissait faire.

🐌