This seemed to be impossible, I've done a lot of research and created an X thread with some experts.
The solutions seemed to be:
Forbid any at all which seems reasonable
Swap (...args: any[]) => any for (...args: never[]) => unknown. This one was suggested by our contributor @jly36963 which is a thread on TS repo itself, and it seems nice because if you don't declare the types the arguments are gonna be never so you can't use them. I was a bit worried about some comments about problems with default arguments - as you can read in the last comment on that thread.
This morning I decided to try and use the Function primitive. I know we are not supposed to use it for several reasons (it could mean any constructor, or callable object, etc) but it seems to do it here.
Solves #146
This seemed to be impossible, I've done a lot of research and created an X thread with some experts.
The solutions seemed to be:
any
at all which seems reasonable(...args: any[]) => any
for(...args: never[]) => unknown
. This one was suggested by our contributor @jly36963 which is a thread on TS repo itself, and it seems nice because if you don't declare the types the arguments are gonna be never so you can't use them. I was a bit worried about some comments about problems with default arguments - as you can read in the last comment on that thread.This morning I decided to try and use the
Function
primitive. I know we are not supposed to use it for several reasons (it could mean any constructor, or callable object, etc) but it seems to do it here.WDYT?