Typescript Return Type: void
Remember the Rule : "void is the return type of a function/method that doesn’t explicitly return anything"
Whether your use "void" or not as return type in function/method, its automatically infer to "void" return type if there is no explicit return type
It's entirely personal preference whether you explicitly annotate a method's return type or not, especially for a trivial type like void
.
Reasons you might add : void
:
- Improves clarity - other devs don't have to read the method body to see if it returns anything
- Safer - if you e.g. move code from another function into this one that has a
return expr;
statement in it, TypeScript will flag this mistake
Reasons you might not:
- Brevity - if it's clear from context what the return type should be (e.g.
getLength()
is almost certainly returningnumber
), then a return type annotation is slightly noisy - Flexibility - if you're prototyping this code and aren't sure yet what you want the return type to be, leaving it inferred lets you change it more easily
Another use-case which benefits from being explicit with 'void' return type IMO is one-line arrow functions.
// the second method has no body block, and implicitly returns the
// size of the internal array, which may not be the desired outcome
// explicitly stating a :void return type would flag the bottom one
// as an error
add = (v: string): => {this.list.push(v);};
addAndReturnLengthOfList = (v: string): => this.list.push(v);
'''