mirror of
https://github.com/adambard/learnxinyminutes-docs.git
synced 2024-12-23 17:41:41 +00:00
Intial file created for TypeScript
Not all content but it's a good start
This commit is contained in:
parent
02aed42057
commit
3f5251edf9
75
typescript.html.markdown
Normal file
75
typescript.html.markdown
Normal file
@ -0,0 +1,75 @@
|
||||
---
|
||||
language: TypeScript
|
||||
contributors:
|
||||
- ["Philippe Vlérick", "https://github.com/pvlerick"]]
|
||||
---
|
||||
|
||||
TypeScript is a language that aims at easing development of large scale applications written in JavaScript.
|
||||
TypeScript adds common concepts such as classes, modules, interfaces, generics and (optional) static typing to JavaScript.
|
||||
It is a superset of JavaScript: any JavaScript code is valid TypeScript code so it can be added seamlessly to any project.
|
||||
TypeScript code compiles down to JavaScript.
|
||||
|
||||
This article will focus only on TypeScript added syntax, everything else is plain [JavaScript] (../javascript/).
|
||||
|
||||
```ts
|
||||
//There are 4 basic types in TypeScript
|
||||
var isDone: boolean = false;
|
||||
var lines: number = 42;
|
||||
var name: string = "Anders";
|
||||
|
||||
//However, when it's impossible to know, there is the "Any" type
|
||||
var notSure: any = 4;
|
||||
notSure = "maybe a string instead";
|
||||
notSure = false; // okay, definitely a boolean
|
||||
|
||||
//For collections, there are typed arrays and generic arrays
|
||||
var list: number[] = [1, 2, 3];
|
||||
//Or, using the generic array type
|
||||
var list: Array<number> = [1, 2, 3];
|
||||
|
||||
//For enumerations
|
||||
enum Color {Red, Green, Blue};
|
||||
var c: Color = Color.Green;
|
||||
|
||||
//Lastly, "void" is used in the special case of a function not returning anything
|
||||
function bigHorribleAlert(): void {
|
||||
alert("I'm a little annoying box!");
|
||||
}
|
||||
|
||||
//Interfaces are structural, anything that has the properties is compliant with the interface.
|
||||
//In the bellow example, any object that has a name which is a string and an age which is a number is a Person.
|
||||
//This is called "duck typing".
|
||||
interface Person {
|
||||
name: string;
|
||||
age: number;
|
||||
|
||||
//Interfaces also support optional properties
|
||||
phone?: number;
|
||||
}
|
||||
|
||||
//Interfaces can also describe a function type, to describe a function signature
|
||||
interface SearchFunc {
|
||||
(source: string, subString: string): boolean;
|
||||
}
|
||||
//The type can then be used for functions, and the compiler will be able to check that types are compliants
|
||||
//Note that only the parameters' types are important, names are not important.
|
||||
var mySearch: SearchFunc;
|
||||
mySearch = function(src: string, sub: string) {
|
||||
var result = source.search(subString);
|
||||
if (result == -1) {
|
||||
return false;
|
||||
}
|
||||
else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
```
|
||||
|
||||
To test TypeScript's compiler, head to the [Playground] (http://www.typescriptlang.org/Playground).
|
||||
|
||||
## Further Reading
|
||||
* [TypeScript Official website] (http://www.typescriptlang.org/)
|
||||
* [TypeScript language specifications (pdf)] (http://go.microsoft.com/fwlink/?LinkId=267238)
|
||||
* [Anders Hejlsberg - Introducing TypeScript on Channel 9] (http://channel9.msdn.com/posts/Anders-Hejlsberg-Introducing-TypeScript)
|
Loading…
Reference in New Issue
Block a user