Вопросы по теме 'mapped-types'
Веселье + разочарование с сопоставленными типами TypeScript
Введение в проблему
Я изо всех сил пытаюсь разработать сильную типизацию для конкретной функции, написанной на TypeScript...
Для иллюстрации предположим, что я работаю в Департаменте транспортных средств и у меня есть функция registerVehicles ,...
205 просмотров
schedule
15.06.2023
TypeScript - проверка типа перечисления для условных типов?
У меня есть успокаивающие службы, которые принимают значения перечисления либо как число, либо как строку, но всегда возвращают только число. Есть ли способ их набрать?
Вот что я вроде как хочу, но это синтаксически неверно:
enum Features {...
7537 просмотров
schedule
10.01.2023
Typescript: получение правильного типа вывода при использовании условно сопоставленных ключей
Я пытаюсь использовать типы с условным отображением , чтобы получить только разрешающие ключи объекта определенного типа в качестве параметра функции.
Однако я сталкиваюсь с проблемой, заключающейся в том, что при этом не определяется правильный...
634 просмотров
schedule
05.09.2022
Как мы можем сопоставить массив строк с картой типов 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 просмотров
schedule
02.05.2023
Должны ли сопоставленные типы 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 просмотров
schedule
14.09.2022
Как обратиться к сопоставленному типу с помощью общего индекса в Typescript?
Я пытаюсь получить доступ к свойству из сопоставленного типа, используя универсальный тип. Но я получаю сообщение об ошибке в комментарии ниже. Как правильно напечатать что-то подобное?
type ThingType = 'typeA' | 'typeB';
interface Thing<T...
110 просмотров
schedule
21.05.2023
Получить тип объединения рекурсивного свойства в TypeScript
Допустим, у нас есть интерфейс:
interface Node<C extends Node[] = any[]> {
children: C
}
Здесь C - это общий кортеж, являющийся типом дочерних узлов этого узла.
Определим несколько узлов:
type Foo = Node<[]>
type Bar =...
136 просмотров
schedule
29.07.2023
Сопоставление типа кортежа 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 просмотров
schedule
13.02.2023
Как ограничить тип ключей объекта константами пространства имен?
Я хотел бы определить сопоставленный тип, ключи которого являются значениями всех констант в пространстве имен.
Я не смог найти другие вопросы, которые охватывают это. Этот вопрос и его дубликат говорят о 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