javascript - Hur skapar man ett gränssnitt från typeof?


Hur går jag dynamiskt "bakåt" från objekt till gränssnitt?

const o = {
  a: 1,
  b: "hi"
}

interface i = typeof o; // how to write this?

Resultatet bör vara motsvarande:

interface i {
  a: number,
  b: string
}

Svar #1

Du kan inte direkt skapa ett gränssnitt, men du kan skapa ett typeralias, vilket i de flesta fall kan användas på samma sätt som ett gränssnitt (dvs. du kan utöka ett nytt gränssnitt från det eller implementera det i en klass).

const o = {
a: 1,
b: "hi"
}

type i = typeof o; 
interface ii extends i { }
class ci implements i {
    a = 1;
    b = ''
}

Relaterade artiklar