Каков синтаксис метки вопроса da sh в TypeScript? - PullRequest
0 голосов
/ 21 апреля 2020

I не означает синтаксис вопросительного знака , скорее, я спрашиваю о -?, например:

type Required<T> =
  T extends object
    ? { [P in keyof T]-?: NonNullable<T[P]>; } // <---------- "-?" here
    : T;

через это комментарий GitHub 2018 года . Я не могу найти этот синтаксис в главах справочника TypeScript по расширенным типам или служебным типам .

-?, как указано выше, по-прежнему компилируется в TypeScript 3.8 и выглядит так: напротив из ?, т.е. требуется ли ключ? Это эквивалентно Required? Если нет, то как называется этот синтаксис и где я могу прочитать об этом подробнее?

1 Ответ

1 голос
/ 21 апреля 2020

Вы в основном правы: он удаляет необязательный модификатор свойства ? из сопоставленного типа . Он был введен в TypeScript 2.8 как часть улучшений для контроля над модификаторами отображаемого типа (см. Эту ссылку для документов, которые вы хотите) . Он не идентичен типу утилиты Required, но Required - это , реализованный с ним (см. определение библиотеки здесь ) и не может существовать без него.

Печальный факт, что документация по TypeScript разбросана между справочником, заметками о выпуске, часто задаваемыми вопросами, устаревшими версиями c и GitHub, без четкого канонического места для поиска. для любой конкретной вещи. Язык развивался быстрее, чем документация.

Хорошо, надеюсь, это поможет; удачи!

...