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

Как набрать объект с известными и неизвестными ключами в TypeScript
Я ищу способ создать типы TypeScript для следующего объекта, который имеет два известных ключа и один неизвестный ключ с известным типом: interface ComboObject { known: boolean field: number [U: string]: string } const comboObject:...
13491 просмотров
schedule 27.04.2022

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

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

Сопоставление значений перечисления с типами
Эта проблема Предположим, у меня есть такой код: // Events we might receive: enum EventType { PlaySong, SeekTo, StopSong }; // Callbacks we would handle them with: type PlaySongCallback = (name: string) => void; type SeekToCallback =...
618 просмотров

Попытка использовать условные типы Typescript, чтобы сузить возможные комбинации значений, которые можно ожидать
Я пытаюсь сказать TypeScript, что тип значения в первом параметре функции определяет тип, который может иметь второй. По сути, я хочу сузить возможные комбинации типов. В конкретном примере я хочу, чтобы 2-й параметр был null , если параметр 1sr...
1243 просмотров
schedule 02.07.2023

Напишите функцию, которая использует типы поиска в дженериках.
Я хочу написать функцию, которая делает три вещи: работает с универсальным типом T принимает ключ: K из T, где T[K] должен быть логическим значением присваивает значение T[K] Я следую этому руководству , которое подсказывает при такой...
270 просмотров
schedule 22.09.2022

Зачем нужно ключевое слово infer в Typescript?
Почему ребята из Typescript создали ключевое слово infer ? Согласно документам , это пример того, как вы будете его использовать: type ReturnType<T> = T extends (...args: any[]) => infer R ? R : any; Я не понимаю, зачем это...
19982 просмотров

TypeScript не может сузить тип
(Если вы найдете имя получше, дайте мне знать) У меня есть функция, которая получает два аргумента: задание и сотрудник. Сотрудник не является обязательным: если работа запланирована, сотрудник будет там, в противном случае он не нужен. type...
38 просмотров

Почему тип Typescript, условный для `T extends undefined`, с экземпляром T, созданным с помощью` boolean`, разрешает T в `never`?
Следующий код пытается определить тип функции, которая вызывается без аргументов, если ее общий аргумент равен undefined , но с 1 аргументом для любого другого типа аргумента. (Возможно, есть более эффективные способы сделать это, ссылки на которые...
1700 просмотров
schedule 03.04.2022

Как добавить охранников расширений к условным типам? Или эквивалент
Скажем, у меня есть класс с универсальным параметром. У него есть условные типы для некоторых свойств класса. Эти условные типы зависят от универсального параметра, являющегося одним из двух возможных значений перечисления. В конструкторе я передаю...
193 просмотров

Как вывод типов работает с типами объединения (+ условными типами и универсальными шаблонами) в TypeScript?
Я разрабатываю игру на Angular и пытаюсь отделить представление от игровой логики. Для этого я создал отдельную UiController службу для обработки взаимодействия с пользователем и представления. Службы, связанные с игровой логикой, отправляют...
26 просмотров

Определить сигнатуру функции машинописного текста из объединения типов
Я хочу определить тип функции из объединения типов: type MyEvent = | { type: 'hello', payload: {} } | { type: 'start', payload: { date: Date } } type On<Event> = Event extends { type: infer EventType, payload: infer EventPayload } ?...
36 просмотров

Как удалить ключ / свойство из типа функции
Как удалить name из функции следующего типа: type Func = { (): number name: string } Omit<Func, 'name'> приведет к never . Playground ссылка
38 просмотров
schedule 20.06.2022

Ограничить один общий параметр Typescript на основе свойств другого?
Я пытаюсь написать функцию, которая принимает объект и (строковый) ключ, а затем оперирует свойством объекта. Это легко: function f<T extends any, K extends keyof T>(obj: T, key: K) { const prop = obj[key]; // prop is typed as T[K] } Я...
280 просмотров
schedule 30.07.2022

Тип возвращаемого значения метода класса на основе типа параметра
У меня есть функция, которая принимает что угодно в качестве параметра, но если она получает function (с прототипом), она должна вернуть экземпляр этой функции (или класса, поскольку они являются функциями). Если нет, он может искать что-либо,...
87 просмотров
schedule 16.07.2023

Необязательность аргумента дочерней функции одной функции зависит от необязательности аргумента другой функции.
Я создаю пример функции, которая принимает функцию fn1 в качестве аргумента и возвращает функцию fn2; type Values<T> = (values: T) => Promise<void>; //function with argument type NoValues = () => Promise<void>;...
33 просмотров

Условный тип TypeScript и имена свойств вычисляемого объекта
У меня возникли проблемы с использованием условного типа в сочетании с именем свойства вычисляемого объекта. В основном я вставляю строки в базу данных на основе входной строки. Затем я набираю возвращаемый объект на основе этой входной строки....
145 просмотров

Почему в TypeScript 'T никогда не расширяется? never: keyof T` отличаются от `keyof T '?
Рассмотрим следующие определения: type OtherKeyOf<T> = T extends never ? never : keyof T; type OtherKeyOf2<T> = keyof T; Я ожидал, что OtherKeyOf и OtherKeyOf2 будут действовать точно так же, как я ожидал, что эти две функции...
9 просмотров
schedule 22.03.2024