Required:
You need to have installed Typescript or have a way to test it.
You can try it here: http://www.typescriptlang.org/Playground/
// Interface that will be implemnted
interface IPerson {
//definition of variables
FullName: string;
GetName: string;
// definition of a function
GetFullName(): string;
}
interface IDeveloper {
GetRole(): string;
}
//definition of class that Implements person
class Person implements IPerson {
FullName: string;
GetName: string;
// constructor
constructor(public name: string) {
this.FullName = name;
}
// implemnetation of methods
GetFullName() {
return this.FullName;
}
}
class Developer extends Person implements IDeveloper{
GetRole() {
return "Developer";
}
}
//example
var dev = new Developer("MyName");
alert(dev.GetFullName() + dev.GetRole())
//example will fail
var dev = new Developer(1);
alert(dev.GetFullName() + dev.GetRole())
rendered code by typescript
var __extends = this.__extends || function (d, b) {
function __() { this.constructor = d; }
__.prototype = b.prototype;
d.prototype = new __();
};
var Person = (function () {
function Person(name) {
this.name = name;
this.FullName = name;
}
Person.prototype.GetFullName = function () {
return this.FullName;
};
return Person;
})();
var Developer = (function (_super) {
__extends(Developer, _super);
function Developer() {
_super.apply(this, arguments);
}
Developer.prototype.GetRole = function () {
return "Developer";
};
return Developer;
})(Person);
var dev = new Developer("MyName");
alert(dev.GetFullName() + dev.GetRole());
Returning specific type:
In function I want to have specific return type. I have found this implementation:
function FunctionName(parameter1: string, callback: (result: string) => any){...}
which is specific return type for method that has multiple returns, and we can specify each type that can be returned.
for our example the return objects are:
1, string
2, any object