Как определить подпись индекса для псевдонима типа карты в Typescript? - PullRequest
0 голосов
/ 09 февраля 2019

Если я определил тип для Map, например, так:

type MyCustomMap = Map<string, number>;

Как я могу добавить сигнатуру индекса, чтобы я мог задавать значения ключей после создания?Я был в состоянии сделать такую ​​вещь с типами, которые определяют различные атрибуты, такие как:

type MyCustomObj = {
    [key: string]: any;
    something: string;
}

Но я не мог найти способ сделать это в случае выше.

1 Ответ

0 голосов
/ 09 февраля 2019

Я думаю, вы ищете что-то вроде этого:

type MyCustomObj<Key extends string | number, Value, Rest = {}> =
    Key extends string ? { [key: string]: Value } & Rest: { [key: number]: Value } & Rest;

И вы можете использовать это так:

type Obj = MyCustomObj<string, number>;
type CustomObj = MyCustomObj<string, number, { key: boolean }>;

Детская площадка

...