Вопросы по теме 'typescript-generics'
Ограничение универсальных типов одним из нескольких классов в Typescript
Как в Typescript ограничить универсальный тип одним из нескольких классов во время компиляции? Например, как вы реализуете этот псевдокод?
class VariablyTyped<T has one of types A or B or C> {
method(hasOneType: T) {
if T has...
4828 просмотров
schedule
11.04.2022
Сгенерировать тип для частичной функции
У меня есть функция с объявленным типом. Я планирую использовать частичную версию этой функции. Но мне нужно сначала объявить переменную для частичной версии.
Я могу скопировать подпись, опустив первый параметр. Пока он работает и делает проверки...
534 просмотров
schedule
20.05.2022
Проблема с типами объединения и условными типами
У меня есть следующие объявления типов:
class MyGeneric<T> { }
type ReplaceType<T> = T extends Function ? T : MyGeneric<T> | T;
ReplaceType<T> должен преобразоваться в MyGeneric<T> | T или T , в зависимости...
249 просмотров
schedule
05.06.2023
TypeScript: эквивалент ограничения общего типа C # для расширения класса?
Я пытаюсь написать защищенный абстрактный класс, который может принимать тип подкласса в качестве аргумента типа в сигнатуре метода конструктора суперкласса.
То, что я ищу, похоже на ограничение общего типа C # (ключевое слово where ), так что я...
920 просмотров
schedule
17.06.2022
Как получить доступ к свойствам универсального объекта по индексу в TypeScript?
У меня есть следующая функция, которая проходит через все атрибуты объекта и преобразует их из строк ISO в даты:
function findAndConvertDates<T>(objectWithStringDates: T): T {
for (let key in Object.keys(objectWithStringDates)) {...
1463 просмотров
schedule
20.10.2022
Определите возвращаемый тип родственной функции
Я хочу иметь возможность сделать это:
const columns: ColumnDefinition<Pair>[] = [
{ label: 'Pair', value: pair => (all ? pair.code : pair.second.code), format: result => result.toUpperCase() },
{ label: 'Price', numeric:...
138 просмотров
schedule
28.10.2023
Как получить вывод общего типа с помощью strictNullChecks для сопоставления с менее строгим типом?
У меня есть универсальная функция, которая принимает два аргумента, один из которых является суммой переменной типа, null и undefined, а другой - просто переменной типа. Typescript выводит переменную типа из второго аргумента.
Я уже знаю способы...
25 просмотров
schedule
24.09.2022
Строго типизированные параметры отдыха в TypeScript
Как определить динамические строго типизированные параметры отдыха с помощью TypeScript 3.2? Вот мой вариант использования:
function exec<T, P extends ICommandNameArgumentTypeMapping, E extends keyof P, U extends P[E]>(command: E, ...rest:...
2894 просмотров
schedule
24.12.2022
Условный тип Typescript, основанный на расширении, ведет себя не так, как ожидалось
Допустим, у нас есть этот пример:
class Base<T extends Base<T>> {}
class ClassA extends Base<ClassA> {}
class ClassB extends Base<ClassB> {}
type Condition = ClassA extends ClassB ? true : false;
Базовый класс имеет...
827 просмотров
schedule
31.01.2023
Вывести универсальный тип из ключа объекта
Мой вопрос немного сложнее, поэтому, возможно, вот все необходимые части:
// Common interface with an id and a string lieral type
interface IHandler {
id: Id<IHandler>;
type: string;
}
// Base class for all the handler, with generic...
1204 просмотров
schedule
14.07.2022
Как предотвратить буквальный тип в TypeScript
Скажем, у меня есть такой класс, который охватывает значение:
class Data<T> {
constructor(public val: T){}
set(newVal: T) {
this.val = newVal;
}
}
const a = new Data('hello');
a.set('world');
// typeof a -->...
808 просмотров
schedule
13.07.2023
Параметры машинописного текста - общий массив объектов и массив ключей объекта (частичный)
Я хочу иметь метод, который принимает массив объектов и массив некоторых ключей объектов. Метод вернет массив массивов значений объектов, но только выбранных ключей.
данные:
[
{"firstName": "Jane", "lastName": "Doe"},
{"firstName": "John",...
2733 просмотров
schedule
16.12.2022
Тип для объекта, который имеет одно и только одно свойство
Мне нужен тип объекта, который имеет одно и только одно свойство с любым ключом и любым типом T.
type ObjWithOneProperty<T> // = ?
// OK
const obj1: ObjWithOneProperty<boolean> = {
property1: true
}
// OK
const obj2:...
46 просмотров
schedule
11.07.2022
Typescript: общая функция для обеспечения безопасного доступа к переменной, не экспортированной из модуля
У меня есть модуль с объектом, содержащим кеш элементов разных типов, каждый из которых хранится в свойстве объекта кеша:
type Pet = { name: string, petFood: string }
type Human = { firstName: string, lastName: string }
type Cache = { pets: Pet[],...
251 просмотров
schedule
21.06.2022
универсальная функция, работающая с помеченным непересекающимся объединением - зачем здесь нужна спецификация типа?
Я изо всех сил пытаюсь понять, почему здесь помогает определенный тип.
Вот функция:
function getAttributeFromVerification<V extends Verification>(
verification: V | null,
attribute: keyof V['attributes']
) {
// the verification may...
47 просмотров
schedule
29.04.2022
Можно ли сделать внутреннее соединение на интерфейсах
Допустим, у нас есть два интерфейса First и Second :
interface First {
a: string;
b: number;
}
interface Second {
b: number;
c: Date;
}
С помощью пересечений можно объединить два интерфейса:
type FirstSecond = First &...
101 просмотров
schedule
27.07.2023
Типобезопасная каррированная функция для извлечения свойства из объекта в Typescript
Я хотел бы добавить типизацию для моей функции prop . Каррируется (сначала ключ, потом объект).
Я пробовал со следующим подходом: частично применив его к какому-то ключу, я пытаюсь ограничить его объектом, содержащим такое свойство.
Я...
53 просмотров
schedule
03.09.2022
Как определить функцию с перегрузками, чтобы иметь ровно 1 или 2 аргумента, типы которых зависят от используемого строкового литерала
Я хочу реализовать функцию emitEvent(event, extra?) , которая будет ограничена перечислением строкового литерала известной строки, например POPUP_OPEN , POPUP_CLOSED и т. д. Эта функция принимает второй аргумент, который снова является явно...
113 просмотров
schedule
10.10.2022
Как добавить defaultProps к универсальному функциональному компоненту с помощью внедрения компонента в TypeScript?
У меня есть функциональный компонент Button , который использует опору as для вставки элемента HTML или другого компонента. Я хочу установить опору as по умолчанию для Link компонента react-router . Это сделало бы опору to Link...
495 просмотров
schedule
15.11.2022
Можно ли автоматически генерировать свойства класса из его универсального типа?
Есть ли способ в TypeScript создать класс со свойствами из его универсального типа, как показано ниже:
class SomeClass<T> {
// Read props from T somehow here?
}
interface Props {
a: number;
b: boolean;
}
const obj = new...
224 просмотров
schedule
26.09.2022