Prescurtare în Typescript pentru interfețe sau tipuri cu proprietăți de același tip


Există o sintaxă sugar în TypeScript unde pot spune că tipul tuturor proprietăților unei interfețe(/tipuri) este același și să nu îl menționez pentru fiecare proprietate în parte.

Ex :

export interface allStrings {
    prop1: string;
    prop2: string;
}

// Sugard as something like this(Pseudo)
export interface allStrings<string> {
    prop1,popp2;
}

Editare: Nu caut o interfață care să spună obiect cu toate valorile de tip șir, ci mai degrabă un obiect cu doar anumite chei specificate și fiecare are o valoare de tip șir.

Răspuns #1

Ceea ce cauți este similar cu Record<'prop1' | 'prop2', string>

Răspunsul #2

export interface AllSameType<T> {
    [k: string]: T;
}

Aceasta este o interfață a unui obiect cu proprietăți de orice nume și toate vor fi de același tip, T.

Utilizare :

const strs: AllSameType<string> = { a: '', b: 1 }; // Error, b is not string