Метатиповые key path: добраться до static-членов 🍭
🔥 SE-0438 (Swift 6.1) разрешает укоренять key path в метатипе, так что до static-члена можно дотянуться так же, как до свойства экземпляра — и передать его в дженерик, ожидающий KeyPath. Обе формы рабочие: \AppConfig.Type.defaultTimeout целиком, либо \.defaultTimeout при контекстном типе KeyPath<AppConfig.Type, Double>. Значением корня выступает AppConfig.self.
💡 Типичная ошибка ровно обратная тому, что можно подумать: забыть .Type. \AppConfig.defaultTimeout падает с «static member 'defaultTimeout' cannot be used on instance of type 'AppConfig'». Ограничения, о которых стоит знать: static var даёт ReferenceWritableKeyPath, а не WritableKeyPath — метатипы это ссылочные типы. Вычисляемые статики работают. Кейсы энумов — нет, это явное Future Direction.