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 returning number), 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);

'''