How to declare Return Types for Functions in TypeScript
I checked here https://github.com/Microsoft/TypeScript/blob/master/doc/spec.md which is the TypeScript Language Specifications but I couldn't find how I can declare a return type of the function.
I showed what I was expecting in the code below: greet(name:string): string {}
class Greeter {
greeting: string;
constructor(message: string) {
this.greeting = message;
}
greet(): string {
return "Hello, " + this.greeting;
}
}
I know I can use (name:string) => any
but this is used mostly when passing callback functions around:
function vote(candidate: string, callback: (result: string) => any) {
// ...
}
Solution 1:
You are correct - here is a fully working example - you'll see that var result
is implicitly a string because the return type is specified on the greet()
function. Change the type to number
and you'll get warnings.
class Greeter {
greeting: string;
constructor (message: string) {
this.greeting = message;
}
greet() : string {
return "Hello, " + this.greeting;
}
}
var greeter = new Greeter("Hi");
var result = greeter.greet();
Here is the number example - you'll see red squiggles in the playground editor if you try this:
greet() : number {
return "Hello, " + this.greeting;
}
Solution 2:
Return types using arrow notation is the same as previous answers:
const sum = (a: number, b: number) : number => a + b;
Solution 3:
functionName() : ReturnType { ... }