Vorrei creare un'interfaccia per un oggetto che ha un determinato tipo per una specifica proprietà denominata e un tipo diverso per tutte le altre proprietà.Interfaccia dattiloscritto con proprietà denominate e proprietà di indice con nome arbitrario di tipo diverso
Come scrivere una definizione per foo
di seguito?
let foo = {
size: 3,
a: 'foo',
b: 'bar',
c: 'baz'
}
Questo sarebbe il mio approccio intuitivo:
interface Foo {
size: number;
[name: string]: string;
}
Tuttavia, dattiloscritto cerca di applicare la definizione generale per la definizione specifica e fa scattare il seguente errore:
error TS2411: Property 'size' of type 'number' is not assignable to string index type 'string'.
Si può anche inline questo se vuoi (anche non al 100% sicuro ts 1.5). tipo Foo = {dimensione: numero} e {[nome: stringa]: stringa}; – bingles