javascript - Hvordan definere en type i Typescript med et variabelt antall nøkler?


Jeg har følgende tilfelle som jeg ikke vet nøyaktig hvordan jeg skal uttrykke på TypeScript:

{
  "things": {
    "a": 11,
    "b": 22,
    .
    .
    .
  }
}

Da vil jeg gjerne definere noe slik:

type Response<T> = { [_: string]: T }

Så typen ovenfor representerer ethvert svar med en nøkkel og en viss verdi av typen T, men jeg vil ha mange nøkler som angitt i json, "a" "b"... og jeg finner ikke typen for det.

Svar #1

Dette burde fungere:

interface Response<T> {

    things: {
        [key: string]: T;
    };
}

Hvis du har visse taster fast som a, kan du gjøre:

interface Response<T, R> {

    things: {
        // fixed keys
        a: R;
        // some more fixed keys.

        [key: string]: T;
    };
}

Relaterte artikler