I’ve literally just put ts-ignore in many many files. The reason was legacy stuff, we had the ts check off (which blocks a merge if it failed), because there were just too many files that would need fixing. We thought about the best way to add the check so that new files have to have proper types, while having an easy way to slowly fix old ones.
We decided to go with ts-ignore for every file and a lint warning for the same line. So you see it in each file if it needs to be fixed, but you’re not going blind for red ts errors everywhere or don’t have the check at all.
using any is actually much worse than using TS, because you’re basically telling the compiler “don’t help me here”… at least with JS the IDE is gonna help you… :/
I don’t follow, stamping every function with : any lets you merge the branch and deploy it… trying to properly type everything extends the initial migration time likely to a level where management just says no.
Use a combination of allowJs and ts-ignore, do progressive enhancement, and convert your codebase file by file. Adding any everywhere literally turns off type checking altogether codebase wide, including type inference. It also means a huge PR that’s both just noise that needs to be fixed later, and messes with your git history (good luck getting anything useful out of blame or bisect now).
Just getting a green build doesn’t mean things are okay. You’re worse off than before doing that.
I disagree that you’re worse off (the core of my comment was that even a shitty migration encourages better practices)… but I wasn’t super familiar with TS hinting - using ts-ignore would be preferable.
Personally, I mostly work in PHP and we use a similar system. Strict typing is default off so we’ve slowly propagated declare(strict_types=1); to enable compile and runtime checking on a per file basis.
Might as well not use TypeScript
Just as irritating as seeing people use linters only to have a lot of files with @ts-ignore all over the place… Like why even bother?
oh you’ve got a private variable that I want to use? No worries, (foo as any)[‘secret’].
I’ve literally just put ts-ignore in many many files. The reason was legacy stuff, we had the ts check off (which blocks a merge if it failed), because there were just too many files that would need fixing. We thought about the best way to add the check so that new files have to have proper types, while having an easy way to slowly fix old ones.
We decided to go with ts-ignore for every file and a lint warning for the same line. So you see it in each file if it needs to be fixed, but you’re not going blind for red ts errors everywhere or don’t have the check at all.
using
any
is actually much worse than using TS, because you’re basically telling the compiler “don’t help me here”… at least with JS the IDE is gonna help you… :/That’s the joke
I don’t follow, stamping every function with
: any
lets you merge the branch and deploy it… trying to properly type everything extends the initial migration time likely to a level where management just says no.Use a combination of
allowJs
andts-ignore
, do progressive enhancement, and convert your codebase file by file. Addingany
everywhere literally turns off type checking altogether codebase wide, including type inference. It also means a huge PR that’s both just noise that needs to be fixed later, and messes with your git history (good luck getting anything useful out ofblame
orbisect
now).Just getting a green build doesn’t mean things are okay. You’re worse off than before doing that.
I disagree that you’re worse off (the core of my comment was that even a shitty migration encourages better practices)… but I wasn’t super familiar with TS hinting - using ts-ignore would be preferable.
Personally, I mostly work in PHP and we use a similar system. Strict typing is default off so we’ve slowly propagated
declare(strict_types=1);
to enable compile and runtime checking on a per file basis.tbh I don’t remember why I’m using TypeScript
Cause otherwise it’s plain JS :/
Forreal. Even a bespoke inferred return type is better than any 9 times out of 10.
This is the only reason I haven’t pushed my team to switch. I’m worried too many of them will be OP.