Когда мы должны использовать записьvs {[index: string]: T}?[Машинопись - PullRequest
2 голосов
/ 29 апреля 2019

Когда мы должны использовать Record vs {[index: string]: T}?

Кажется, Record должно быть добавлено по какой-то причине, но объявление и Справочник не объясняют почему.

const x: { [index: string]: number } = { f: 2, 3: 5 };
const y: Record<string, number> = { f: 2, 3: 5 };

1 Ответ

3 голосов
/ 29 апреля 2019

Record обычно используется с объединением ключей для получения типа, содержащего эти ключи (например: Record<'a' | 'b', string > == { a:string, b:string})

Если вместо объединения ключей вы передаете string, это разрешит сигнатуру индекса, поэтому два типа, упомянутые в вопросе, эквивалентны.

Какой из них вы используете, это в основном вопрос стиля. Если тип, который я определяю, не имеет ничего, кроме подписи индекса, я предпочитаю Record. Если тип более сложный, тогда нам нужно указать подпись индекса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...