Вопросы по теме 'typescript-generics'
Typescript: реализация универсального интерфейса
Рассмотрим следующий общий интерфейс:
interface Extractor<T> {
extractCandidate(): T;
process(candidate: T): T;
}
Концептуально каждая реализация Extractor отвечает за извлечение объектов определенного типа из некоторого источника...
4040 просмотров
schedule
17.01.2024
Пользовательское перечисление в общих типах машинописных текстов слишком сложно
если есть более простой способ записать это, так как это очень часто повторяется и кажется очень неправильным ...
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 просмотров
schedule
18.03.2023
Можно ли установить общий тип функции, не вызывая ее в 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 просмотров
schedule
27.11.2023
Как: универсальный, который принимает типы только для чтения?
Учитывая действие в списке
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 просмотров
schedule
08.11.2022
В чем разница между дженериком, который расширяет тип, и обычным типом в 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 просмотров
schedule
28.07.2022
Указание типа возвращаемого значения функции с применением определенных ограничений
Я новичок в TypeScript и пытаюсь чего-то достичь или даже знать, возможно ли это.
Я хочу иметь возможность определять тип функции, которая позволяет экземплярам функции устанавливать свой собственный тип возвращаемого значения, но в то же время...
27 просмотров
schedule
01.01.2023