Вопросы по теме 'typescript-generics'

Typescript: реализация универсального интерфейса
Рассмотрим следующий общий интерфейс: interface Extractor<T> { extractCandidate(): T; process(candidate: T): T; } Концептуально каждая реализация Extractor отвечает за извлечение объектов определенного типа из некоторого источника...
4040 просмотров

Пользовательское перечисление в общих типах машинописных текстов слишком сложно
если есть более простой способ записать это, так как это очень часто повторяется и кажется очень неправильным ... const FolderVisibility = new Enum<{ PUBLIC: 'public', PRIVATE: 'private' }>({ PUBLIC: 'public', PRIVATE:...
200 просмотров
schedule 20.05.2023

Typescript - защита общего типа для функции isEmpty
Я не могу правильно реализовать общий isEmpty(value) с точки зрения ограничения типа сужения предоставленного значения до его пустого аналога. Пример использования: function getCountryNameById(countries: LookupItem[] = [], countryId?:...
2743 просмотров
schedule 30.01.2023

Следует ли использовать дженерики Typescript для принудительного использования интерфейса при вызове метода?
Пытаюсь разобраться с дженериками и задаюсь вопросом, правильно ли я применяю их здесь. Рассмотрим следующее: interface NameValuePair { name: string; value: string; } function flatten(data: NameValuePair[]) { return...
100 просмотров
schedule 28.11.2022

Дженерики Typescript + условные типы не могут быть присвоены ошибке типа
Я использую условные типы для автоматического определения типа структуры данных с помощью универсальных классов. По какой-то причине он не выводит типы в конструкторе ObjectType . Машинописная площадка export type NodeType<T> = T...
278 просмотров
schedule 23.08.2022

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

Как исправить TS2322: мог ли быть создан экземпляр с другим подтипом ограничения «объект»?
A имеют ошибку проверки типа в рекурсивных типах. Я пытаюсь написать типы для объекта стилей response-jss. type StylesFn<P extends object> = ( props: P ) => CSS.Properties<JssValue<P>> | number | string; type JssValue<P...
56855 просмотров
schedule 24.03.2022

Функция ввода машинописного текста с двумя параметрами, один из которых является ключевым в другом
Данный: const I18 = { EN: { M1: { A: 'Hi' } } }; (page: Keys, label:string ) => () => string | string Применение const current = 'EN'; const T = (param1, param2) => I18[current][param1][param2]; console.log( T('M1','A') ) //...
36 просмотров
schedule 30.09.2023

Универсальный обработчик событий в TypeScript
Я пытаюсь создать общую систему обработчиков событий, которая обеспечивает безопасное использование типов. Не должно быть возможности подписаться на неправильные типы событий (например, this.on('FooEvent', (event : BarEvent) => ...) не...
267 просмотров

Можно ли установить общий тип функции, не вызывая ее в Typescript?
Вопрос в названии. Ниже пример того, чего я пытаюсь достичь: const apiResponse = Promise.resolve({data: 1} as {data: any}); // Assume I don't know the type of data const mapData = <T>(res: {data: T}): T => res.data; const x =...
487 просмотров
schedule 30.08.2022

Дженерики машинописного текста: T расширяет X внезапно хочет, чтобы X расширял T
Я получаю сообщение об ошибке, что мой интерфейс Event должен реализовать все свойства MyEvent , в то время как на самом деле я хочу, чтобы TS проверял, что MyEvent реализует Event . Мое понимание дженериков заключалось в том, что я могу...
100 просмотров
schedule 01.10.2022

Сужение общего свойства union интерфейса, как если бы это была локальная переменная в машинописном тексте
У меня есть объект данных, который мне нужно передать в одно из двух мест, в зависимости от того, какой член объединения в данный момент содержится в объекте. В обоих местах требуются все данные в объекте, поэтому воссоздание объекта суженным типом...
65 просмотров
schedule 26.02.2024

Сглаживание вложенного типа кортежа и сохранение порядка
Я пытаюсь добиться чего-то вроде этого: type Type = object; type TypeTuple = readonly Type[]; function flattenTuples<T extends readonly (Type | TypeTuple)[], R = Flatten<T>>(...tuples: T): R { // flatten tuple and return with...
493 просмотров

Как: универсальный, который принимает типы только для чтения?
Учитывая действие в списке type DoSomethingWith<L extends any[]> = L то, что я пытаюсь сделать, работает как таковое const keys = { a: ['a', 'b', 'c'] as ['a', 'b', 'c'], d: ['d', 'e', 'f'] as ['d', 'e', 'f'], } type Keys =...
317 просмотров

В чем разница между дженериком, который расширяет тип, и обычным типом в Typescript?
Здравствуйте, специалисты по машинописи. может кто-нибудь объяснить, почему следующий код дает мне ошибку в строке 16, но не в 13. Это задумано или отсутствует функция? Код interface Config { // There need to be different types in here...
71 просмотров
schedule 29.11.2022

Как мне выразить, что S должен иметь свойство dirty логического типа?
Я пытался задать это ранее в общем ( Почему я не могу присвоить U частичному‹T›, когда T расширяет U? ), и я думаю, что теперь понимаю, почему S extends {dirty: boolean} неверно (S может быть {dirty: false} , но большинство предложений сводилось к...
191 просмотров
schedule 02.01.2023

Ограничение универсального сопоставленного типа с необязательным членом не ограничивает, когда один из членов существует
const abc = <T extends object, P extends { [key in keyof T]?: number }>( a: T, b: P ) => { console.log(a, b); }; const A = { x: "1", y: "2", z: "3" }; const b = { x: 1, y: 2, z: 3 }; const b1 = { x: 1, y: 2 }; const b3 = { m: 5 };...
60 просмотров
schedule 05.03.2023

TypeScript: общий тип интерфейса с одним обязательным полем
Я хочу создать функцию f , которая принимает строку и создает объект, где key - единственный набор полей. Я также хочу, чтобы функция проверила тип интерфейса A , чтобы убедиться, что поле key является единственным обязательным полем...
636 просмотров
schedule 15.02.2022

Я хочу иметь тип, который соответствует каждому типу объединения, но не любому объединению этих отдельных типов.
Предположим, у меня определены следующие типы: type A = {a:number}; type B = {a:string}; type C = {a:boolean}; type All = A | B | C; Теперь я хочу определить общий тип S (без использования каких-либо типов _3 _, _ 4_ и C в определении),...
22 просмотров

Указание типа возвращаемого значения функции с применением определенных ограничений
Я новичок в TypeScript и пытаюсь чего-то достичь или даже знать, возможно ли это. Я хочу иметь возможность определять тип функции, которая позволяет экземплярам функции устанавливать свой собственный тип возвращаемого значения, но в то же время...
27 просмотров
schedule 01.01.2023