descript-org / descript3

MIT License
8 stars 6 forks source link

Хук before добавляет в тип result лишний undefined #14

Closed dj-stormtrooper closed 2 years ago

dj-stormtrooper commented 4 years ago

В рантайме return undefined внутри before скипается и никак не аффектит result, но в тайпинге для result добавляется лишний undefined

пример

https://www.typescriptlang.org/play/index.html#code/JYWwDg9gTgLgBAEwKZwGZQiOByZBnAYymDBmwG4AoS5AOggCMArJAmACgG9K5e4GANhAIBrAFxxOAXwA0PPhFLAIAOzwTufLfySpoSCVzhgAhlBMg8cKRuNmLeAPy29ECQwgQBSEyutSASjgAXgA+SXltbWBUOHZTc0tHWlcgzSiM3igkGABXKD9sVwpIzOtqMr5svILSrVk6vhNUGCQoQwCJPBhiFQBzAB8VXJAGNpDwgFY5erlAoA

pasaran commented 4 years ago

Ну тут все более-менее правильно и понятно. Тип Result блока должен откуда-то вывестись. Он может вывестись из after, а может из before. И вроде никак на это я повлиять не могу. Ты ждешь, что он выведется из after, а он, похоже, выводится из before. Я хз как тут быть пока.

Кажется, что нужно смотреть сюда https://github.com/pasaran/descript3/issues/12. И явно задавать тип блока через дженерик.

pasaran commented 4 years ago

Посмотри в docs/typescript-examples/options.ts, вроде у меня ок с before все.