Вопросы по теме 'mapped-types'

Веселье + разочарование с сопоставленными типами TypeScript
Введение в проблему Я изо всех сил пытаюсь разработать сильную типизацию для конкретной функции, написанной на TypeScript... Для иллюстрации предположим, что я работаю в Департаменте транспортных средств и у меня есть функция registerVehicles ,...
205 просмотров
schedule 15.06.2023

TypeScript - проверка типа перечисления для условных типов?
У меня есть успокаивающие службы, которые принимают значения перечисления либо как число, либо как строку, но всегда возвращают только число. Есть ли способ их набрать? Вот что я вроде как хочу, но это синтаксически неверно: enum Features {...
7537 просмотров

Typescript: получение правильного типа вывода при использовании условно сопоставленных ключей
Я пытаюсь использовать типы с условным отображением , чтобы получить только разрешающие ключи объекта определенного типа в качестве параметра функции. Однако я сталкиваюсь с проблемой, заключающейся в том, что при этом не определяется правильный...
634 просмотров

Как мы можем сопоставить массив строк с картой типов TypeScript ключей для типов?
У меня есть следующий рабочий код без ошибок типа: type Events = { SOME_EVENT: number; OTHER_EVENT: string } interface EventEmitter<EventTypes> { on<K extends keyof EventTypes>(s: K, listener: (v: EventTypes[K]) => void); }...
2099 просмотров
schedule 01.01.2023

Почему этот сопоставленный тип удаляет декоратор `?`? Как добиться подобного результата, не удаляя его?
Проблема Мы создаем сопоставленный тип, который исключает свойства типа Function . У нашего подхода есть проблема: он также удаляет необязательный декоратор ( ? ) из сопоставленных свойств. Размножение Вот упрощенное воспроизведение...
119 просмотров
schedule 29.07.2022

Фильтрация размеченного объединения TypeScript не работает на дискриминированном ключе
У меня есть следующий код, который я использую для отслеживания статусов асинхронных запросов. В качестве дискриминатора используется _type , а также status . В следующем коде я определяю два типа AsyncStatus: LoginAsyncStatus и...
901 просмотров

Должны ли сопоставленные типы TypeScript иметь значение для каждого ключа?
Мне интересно, должен ли каждый ключ в сопоставленном типе иметь определенное значение. Я бы не ожидал, что это будет так, поскольку для этого потребовалось бы неизмеримо много значений. Однако тогда я бы ожидал, что Partial<T> будет...
30 просмотров
schedule 11.01.2023

Сопоставленные типы в Scala, похожие на Typescript Pick, Exclude и т. Д.
По пятам отображаемых типов в Scala Есть ли способ имитировать Pick , Exclude , Diff и т. Д. Из Typescript в Scala? Используя аналогичный пример, как указано выше: case class Person(name: String, age: Int, address: String, phone:...
78 просмотров

Как обратиться к сопоставленному типу с помощью общего индекса в Typescript?
Я пытаюсь получить доступ к свойству из сопоставленного типа, используя универсальный тип. Но я получаю сообщение об ошибке в комментарии ниже. Как правильно напечатать что-то подобное? type ThingType = 'typeA' | 'typeB'; interface Thing<T...
110 просмотров

Получить тип объединения рекурсивного свойства в TypeScript
Допустим, у нас есть интерфейс: interface Node<C extends Node[] = any[]> { children: C } Здесь C - это общий кортеж, являющийся типом дочерних узлов этого узла. Определим несколько узлов: type Foo = Node<[]> type Bar =...
136 просмотров

Сопоставление типа кортежа Typescript не работает: свойства массива по умолчанию отсутствуют
я хочу создать тип, который отображает кортеж формы [...T[]] в [...TodoStepBlueprint<T>[]] . мои знания машинописного текста ограничены, но я думаю, что понимаю, что я сделал до сих пор. это то, что у меня есть до сих пор: (которое...
135 просмотров
schedule 26.01.2023

Расширить размеченные союзы
возможно ли преобразовать этот DU, используя mappend/условные типы type MyDU = | {kind: 'foo'} | {kind: 'bar'} type Transformed = DUTransformer<MyDU> таким образом, что мы получаем следующий результат type Transformed = | {kind:...
121 просмотров
schedule 15.05.2023

Каково значение знака минус в отображаемом типе, содержащем `[P в ключе T]-?`
В чем разница между [P in keyof T]? (без - ) и [P in keyof T]-? (с - )? Я не могу найти этот шаблон в документации, и его практически невозможно найти в Google, если вы не знаете его название. здесь приведены некоторые случаи, когда этот...
13 просмотров
schedule 17.09.2022

Реализация обработчика сообщений в TypeScript с использованием сопоставленных типов
Я пытаюсь реализовать обработчик сообщений, используя сопоставленные типы. Проблема в том, что функция handleMessage ниже не компилируется. Я понимаю, почему он не печатает проверку, но я думаю, что это разумный вариант использования. Возможно ли...
27 просмотров
schedule 17.12.2022

Почему типы динамических кортежей Typescript показывают все параметры в Autocompletion/Intellisense?
Я очень новичок в Typescript, и у меня есть проблема, которую я не знаю, как ее решить :(. В основном я хочу создать список кортежей из списка компонентов. Первый элемент кортежа — это имя элемента (ключ MyComponents), а вторые элементы — его...
48 просмотров

Как ограничить тип ключей объекта константами пространства имен?
Я хотел бы определить сопоставленный тип, ключи которого являются значениями всех констант в пространстве имен. Я не смог найти другие вопросы, которые охватывают это. Этот вопрос и его дубликат говорят о JavaScript, тогда как я очень хочу...
31 просмотров
schedule 04.05.2023

Как определить сопоставленный тип с необязательным подмножеством ключей в TypeScript?
У меня есть код TypeScript, который аккуратно сопоставляет типы с их возможными значениями: export const randomMappings = { coin: ['heads', 'tails'], d4: [1, 2, 3, 4], d6: [1, 2, 3, 4, 5, 6], d10: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], } as...
26 просмотров
schedule 03.08.2022

Динамически создавать объекты в Typescript с помощью динамических ключей без расширения типа до {[key: string]: T}
Ключ динамического объекта без расширения до { [key: string]: V } ? Я пытаюсь создать функцию Typescript для создания объекта с динамическим ключом, имя которого указано в сигнатуре функции, без расширения возвращаемого типа до { [key: string]: V...
59 просмотров
schedule 21.09.2022

Построение сопоставленного эксклюзивного типа в машинописном тексте
У меня есть следующий тип (упрощенный): type ValueRepresents = { boolean: true number?: false other?: false } | { boolean?: false number: true other?: false } | { boolean?: false number?: false other: true }...
31 просмотров
schedule 18.12.2022