TypeScript · Senior · Запитання 8 з 75
Як лишити в типі лише властивості-функції?
type Methods<T> = {
[K in keyof T as T[K] extends Function ? K : never]: T[K];
};- ✓Правильна відповідь: Remapping ключа в
neverвиключає властивість із результату - 2
as neverробить значення властивості типомnever - 3Цей код спричиняє помилку компіляції
Пояснення
Якщо вираз після as обчислюється в never, ключ відкидається. Це стандартний прийом фільтрації ключів за типом значення. Без as довелося б спершу обчислити union ключів, а потім застосувати Pick.