дублирования, которого нету в примере ниже, но из за этого ошибка. Или я ошибаюсь?
https://www.typescriptlang.org/play?#code/MYGwhgzhAECCA8AVaBTAHgFxQOwCYwHsAjAKxWAwBpoBpVTHfaCDAJwEtsBzAPmgG8AUNBHRgBbC1YBXCgVYAKAG4AuWgEoBAX0E6QKDNDDQAvNGwoA7nHj8wKgIxaeCgOQPX6gNxA
https://t.me/ts_cool/322349
Хотите безумную идею? 🤪
Звучит заманчиво)
Предупреждаю это эксперементальное решение 🤭: https://www.typescriptlang.org/play?#code/C4TwDgpgBAYg9nAPAFShAHsCA7AJgZygG8oBDALimwFcBbAIwgCcoBfAPigF4oAKVDFjyESFKAEtsAM2ZQAgmygB+KAAMAJCQWCcBKnUYsVCyvmBNJAczaqolbBABuzAJQBuAFAeAxgBtS+IRyKGiYuiJk9gayHMQeUAlQ3nDYZkzU3sBwTLyOlPBIyOwuxKweZb4QwGTcVBAA7vKIopQAjGzsvADkrV3uXkA
Основная идея в том, что если вы ставите тип, значит вы заранее делаете конфиг всех таких параметров, а значит можно сделать тип Foo, поторый потом использовать везде, где вам нужен тип вот этого "1" 🤭 Т.е. если не пытаться вытащить тип из передачи в конструктор, можно пойти с обратной стороны 🤪
Только не молчите 🌚
https://www.typescriptlang.org/play?#code/MYGwhgzhAEBiYGsCmBRAbkgdgFwCpgCcBzJbAHl2iQA9ssATGAJSWAHsD6yJsCBLTEQA00AK6YEmNgHdM0AGTQW7TmQDSKAJojkATzYAzaLgB8JkRs1VaDGD36CT0AN4AoaNAAO-NGDrQQPh4sJAIYAF5oTCRpaABZME8yPUNjEQBlUjIACiQMHAAuYwBtFKNcAF0ASmhwpzQ2PnozbKqAbld3aHZMe1FgbA5s7z5ffz0iyxrnAF9OjzB6enQsbAAZILpogmzsXU8kIoByAEEQECORQODtotz87CLcUqR9cura+sb6KqKGpo6CyWKxwGxuoXU1i2jGgZWMJl2+0O0DUV02IQIdzyjxKag+dWg-x+f2+gOgi2WDzBW1CiIORXsAmEAXRt2g91WTxeb2M+K+TV+hO+Li6Hj4RmyAEJsAALIIAOmuNLC8plkDpSCq01FHmgsoVSoxEHlEFIGpE0VimWwrXaOrmur1cuNhu2xpINr2ByqkvlFOyrtCdo8cy6BCQAFs2BgQetWRC1FDbLDXqlTBrJmjwZj2XlObi+UKBSSmiLHfqXfGVR6NVUAPzy+hIECkJABqvB6Chjz0IKePzAGWxjmFEpwyqColl3UVxVV91mvM4YqzvTVBsGDgoMCD7LZYAAIxqBMPI+wWrJHlngerZtO5yO9flm4I293+6Pn26B7PF66czmHoeGgAxEFQB58GIUhaiiGI4DA2NII9MhnHJIpULABleCZNo9SRY4wCOLtcIPdDoFIqJRAjA9Qlwr1kSOA8iJmLsRCOeijgRdikUfDpQOQRDCA9P1gSpKtsiOQiRHuY8nDyeUjw6IA типо такого и двойной type раздражает малец
наивно 🤭 Как по мне, тут только с помощью перехода на библиотеки аля моего https://npm.im/pubsub-api или более известное https://www.npmjs.com/package/mitt#typescript
Вместо type Foo<T extends { a: number }> = (T extends { a: infer A } ? `${ A extends number ? A : string }` : never) Можно написать просто type Foo<T extends { a: number }> = `${T["a"]}`
ой, чет сломалось из-за восклицательного знака
А как так писать код
Обсуждают сегодня