4 ms·
nope - the loss in velocity is not worth using it unless you're a massive team. TS is for Java programmers who are mad at Javascript for existing and don't kn
by nocommentx 7y ago
nope - the loss in velocity is not worth using it unless you're a massive team. TS is for Java programmers who are mad at Javascript for existing and don't know how it works well enough to grok overloading etc. plus you get a lot of the benefits of TS in an IDE like VSCode without actually having to use types at all. if you're a javascript native, typescript is constricting and eliminates one of the best parts of javascript - no types!!
- jaywalk 7y agoI'm not quite sure why you consider "no types" to be one of the best parts of JavaScript, but TypeScript certainly doesn't require the use of types. It just makes the functionality available.
- deleted 7y ago[deleted]
- tmountain 7y agoI think this depends on where you are measuring costs in your codebase. If you're strictly looking at time to market on your first iteration, then you're right, types are going to require more of your team's time up front. If you look at the total lifespan of a "real project", then type safety is likely going to represent a cost savings regarding time your team spends on bug fixes, refactoring, and maintaining legacy portions of your app. For context, I base the above sentiment on our team's last two years of effort in migrating key parts of our app to TypeScript (25 devs, ~500k lines of code). We've found that it has substantially reduced the number of defects that make it into production, and it has also reduced the number of round trips through QA. Clearly, this is only one data point, but hopefully it offers some perspective on why TS can be valuable in a codebase.
- nocommentx 7y agosounds like its working for you, so i'm glad. you're about what i'd consider a big team / codebase. i can't recommend TS to people trying to create product from nothing. if your startup is doing well, you can hire someone to annotate your code w/ types later ;)
- gregplaysguitar 7y agoMy experience is the opposite. One of the best things about TS is yhe refactoring experience - change a function signature for example and TS will tell you all the places you need to update. In a fast moving greenfields project with various requirements in flux, I’ve found this invaluable
- tmountain 7y agoI agree on this too. Oftentimes, we'll change a type and then just follow the errors in VSCode. It's a pretty great way to track down all the codepaths that are affected really quickly.
- mixmastamyk 7y ago^large code base
- jimbob45 7y agohttps://www.tutorialsteacher.com/typescript/function-overloading https://www.tutorialsteacher.com/typescript/function-overloa... TS/JS don't allow for overloading the way that other languages do - it does not allow you to differentiate between functions via number of parameters, only types of parameters. If you try to differentiate based on number of parameters, it will simply use whichever definition of that function name it finds first.
- deleted 7y ago[deleted]
- 52-6F-62 7y agoThat's not [entirely] my experience. Here's a quick example: Declaration file style: --- // add.d.ts export declare function add(a: number, b: number): number; export declare function add(a: number, b: number, c: number): number; export declare function add(a: number, b: number, c: number, d: number): number; --- // add.js function add() { switch (arguments.length) { case 2: return arguments[0] + arguments[1]; case 3: return arguments[0] + arguments[1] + arguments[2]; case 4: return arguments[0] + arguments[1] + arguments[2] + arguments[3]; default: throw new Error("Too few or too many arguments. Number of arguments: " + arguments.length); } } module.exports = { add }; --- // adding.ts import { add } from "./add"; console.log("4 + 4 =", add(4,4)); console.log("4 + 4 + 4 =", add(4,4,4)); console.log("4 + 4 + 4 + 4 =", add(4,4,4,4)); --- (Gist: https://gist.github.com/Robert-Fairley/98a2da3f0361e524f4e056d947a6172a https://gist.github.com/Robert-Fairley/98a2da3f0361e524f4e05...) It will default to the first function name, but it definitely allows for overloading the number of parameters. It's not perfect as you do still have to implement the function as it would need to be implemented for JS
- EdwardDiego 7y agoJavaScript has types. typeof {} === 'object'... Sure, they're very weakly held, which can be a lot of fun when you accidentally add a string and a number, but variables have types.
- sime2009 7y ago> no types!! This might be news to you, but JS is full of types regardless of whether you document and automatically check them. I prefer to document my types and have them properly checked, plus the IDE advantages.