чтобы он автоматически добавлял поля в кортеж, когда они будут добавлены в тип Meta
Playground
https://www.typescriptlang.org/play?#code/C4TwDgpgBAyg9gWwgVQHYEs6oCrmgXigGdgAndVAcwG4BYAKAYuAlIDMBDAY2gFkJgHKAG8GUcVDAdgACwBcxMhRpiJXLGTgAbBfCRpMOPHXoBfBg3WoSUK5q0BGXYhQYsuSFEIAiPdBLkVN4mllg2SIJOUPyCXiKq4lKyCgDkACZwXEQpADQJthqk2gp2RY4M5oz0VjYcpKQcIADybNgArmBaEDEcRAoA2j0AdEkyOdECHEOl2gC6-bNx-VAA9CtQgFgggAwggFwgUIDsIIAsIICsIICCIIAyIFCA-CCAAiBbgEwggBwggNwg54C8IIB8IAdbV4+nW4AhEEuAMeVygOw+NwBx0AbCBbAD8+X6EQ4DhG0jGUBRaJmWlmeXos2oQA
[Meta['path'], Meta['control']]
Это не автоматическое расширение 🙂 Мне надо что-типа. […Meta][]. Чтобы в кортеж всегда передавать все поля меты, но именно как отдельные поля, а не объектом
keyof Meta?
Тогда он будет просить кортеж из ключей, мне же нужны типы значений 🤔
https://www.typescriptlang.org/play?#code/C4TwDgpgBAyg9gWwgVQHYEs6oCrmgXigGdgAndVAcwG4BYAKAYuAlIDMBDAY2gFkJgHKAG8GUcVDAdgACwBcxMhRpiJXLGTgAbBfCRpMOPHXoSobOHAD8C1AFcEAI1YMAvgwbrUJKF81aARl1EFAwsXEgoQgAiPWgScipok08sHyRBIKh+QSiRVXEpWQUAcgATOC4iEoAaAt8NUm0FPybAtw96Lx8OUlIOEAB5Nmw7MC0IHI4iBQBBPoGAHimAbQBrCBA4NmyBDgBdAD4V-byVqAB6C6hALBBABhBALhAoQHYQQBYQQFYQQEEQQBkQKEB+EEAAiB3QBMIIAOEEA3CDfQC8IIA+EBedz+oM+d0AQiC-FGgv5QB4wgEo96ANhA7lZ6isMhwAgA6IoyGpQclU1rafZ1ej7ahAA
Это будет массив массивов. Нужен массив кортежей 🙂
Простого способа получить кортеж из типов свойств интерфейса нет (хотя бы потому, что у свойств нет фиксированного порядка), и поэтому, возможно, лучше переписать это место; но технически (на основе нетривиального дженерика TuplifyUnion) такое преобразование можно сделать: play.
Да, я уже решил по-другому. Неправильно, но хотя бы что-то
По-моему, у полей объектов в жс с некоторых пор фиксированный порядок. Object.keys возвращает ключи в порядке их определения
за исключением ключей в виде чисел или числовых строк
Он фиксирован на момент создания. Если ты будешь динамически добавлять поля - то хана
as const
JS-у это никак не помогает
Добровольному, идейному жс-нику в 2020 уже не помочь
помогает JS-у не скомпилироваться при попытке добавить поля в readonly-объект
Обсуждают сегодня