#typescript
Вопрос:
Я пытаюсь создать тип из другого типа. Этот тип будет содержать подмножество ключей на основе их префикса.
Пример базового типа:
interface Foo {
axisControl: FormControl;
directionControl: FormControl;
filteredAxis: Observable<string[]>;
filteredDirection: Observable<string[]>;
}
type Bar = // I want to write something only based on the prefix "filtered"
Ожидаемый результат:
{
filteredAxis: Observable<string[]>;
filteredDirection: Observable<string[]>;
}
Возможно ли это и как?
То, что я пробовал до сих пор:
Pick<Foo, `filtered${string}`>
Но это приводит к ошибке.
Ответ №1:
Вам нужно сузить выбранный тип с пересечением:
type FooWithFiltered = Pick<Foo, `filtered${string}` amp; keyof Foo>
Комментарии:
1. Спасибо, ваш ответ-это реальный ответ на мой вопрос. Вот мой фактический полный вариант использования , знаете ли вы, почему
variable
он не имеет типаstring[]
, когда я его навожу? Я знаю, что это может быть еще один вопрос, но я задаю его здесь на случай, если у вас есть немедленный ответ.2. Возможно, вам придется создать другой тип, который сначала явно сузит его. это работает с этим