Type Script基本文法
27577 ワード
Type Script基本文法
Type Scriptはマイクロソフトが開発したJavaScriptのオーバーセットで、Type ScriptはJavaScriptに対応しています.JavaScriptコードをロードして実行できます.Type ScriptはJavaScriptと比較して進歩したところに注釈を入れて、コンパイラにサポートされているオブジェクトと関数を理解させます.コンパイラは注釈を削除して、オーバーヘッドを増加させません.完全なクラス構造を追加し、従来のオブジェクト指向言語に更新させます.
Type Scriptマイクロソフト公式サイト http://www.typescriptlang.org/ Type Scriptソース http://typescript.codeplex.com
1.基本データタイプ
ボロア
基本文法
アニマルNameをprvateに変更するとき
基本文法
役割:1.名前空間の衝突を防止する;2.機能モジュールを異なるファイルに簡単に区分し、メンテナンスしやすい.
基本文法
基本文法
例えば、C(※)では、メソッドパラメータ定義にparam int[]を使用して、メソッドを呼び出すと、複数のintタイプのパラメータをTypeScriptに渡すことができます.
基本文法
インターフェースを結合類とクラスは結合できません. インターフェースとクラスは結合できません. 変数とクラスは結合できません.
転載は出典を明記してください.http://www.cnblogs.com/xcong/p/4570235.html文のコードはTs公式サイトと極客学院TSファイルからダウンロードします. http://files.cnblogs.com/files/xcong/TsDemo.zip
Type Scriptはマイクロソフトが開発したJavaScriptのオーバーセットで、Type ScriptはJavaScriptに対応しています.JavaScriptコードをロードして実行できます.Type ScriptはJavaScriptと比較して進歩したところに注釈を入れて、コンパイラにサポートされているオブジェクトと関数を理解させます.コンパイラは注釈を削除して、オーバーヘッドを増加させません.完全なクラス構造を追加し、従来のオブジェクト指向言語に更新させます.
Type Scriptマイクロソフト公式サイト http://www.typescriptlang.org/ Type Scriptソース http://typescript.codeplex.com
1.基本データタイプ
ボロア
//Boolean var isDone:boolean = false;
Number//Number var width:number = 100;
String//String var name:string = "hello";
Aray//Array var list:number[] = [1, 2, 3]; var list:Array<number>=[1, 2, 3];
エンム//Enum enum Color {Red, Green, Blue} var c: Color = Color.Red; alert(c);// 0 ,alert(0); // enum Color1 {Red = 1, Green, Blue} var c1: Color1 = Color1.Green; alert(c1);//alert(2) // enum Color2 {Red = 1, Green=2, Blue=4} var c2: string = Color2[4]; alert(c2);//alert(Blue)
アンイ// , var notSure: any = 4; notSure = "maybe a string instead"; notSure = false; // okay, definitely a boolean // var anylist:any[] = [1, true, "free"]; anylist[1] = 100;
Void// function warnUser(): void { alert(123); }
2.クラス基本文法
class Animal { animalName:string; constructor(name:string) { this.animalName = name; } sayHello() { alert(this.animalName + ": Hello"); } } var tom = new Animal("Tom"); tom.sayHello();//alert(Tom:Hello)
引き継ぐclass Animal { animalName:string; constructor(name:string) { this.animalName = name; } sayHello() { alert(this.animalName + ": Hello"); } } class Cat extends Animal { // sayHello sayHello() { alert(this.animalName + "(Cat):" + "Hello"); } } class Mouse extends Animal { sayHello() { alert(this.animalName + "(Mouse):" + "Hello"); } } var tom:Animal = new Cat("Tom"); tom.sayHello();//alert(Tom(Cat):Hello) var jerry:Animal = new Mouse("Jerry"); jerry.sayHello();//alert(Jerry(Mouse):Hello)
修飾子アニマルNameをprvateに変更するとき
class Animal { private animalName:string;// public constructor(name:string) { this.animalName = name; } //... } class Cat extends Animal { // sayHello sayHello() { alert(this.animalName + "(Cat):" + "Hello");//Error } }
getアクセスclass Animal { private _animalName:string;// public get animalName():string { return this._animalName; } set animalName(name:string):string { this._animalName = name; } //... }
静的な属性// class Table { static width = 100; static height = 200; } var width = Table.width; alert(width);//alert(100)
3.インターフェース基本文法
interface ICar { color:string; } class Bus implements ICar { color:string; constructor() { this.color = "Blue"; } } var bus = new Bus(); alert(bus.color);
相続インターフェース// interface Shape { color: string; } interface PenStroke { penWidth: number; } interface Square extends Shape, PenStroke { sideLength: number; }
オプションのプロパティinterface ICar { color:string; safetyDevice?:any;// } function MoveCar(car:ICar){ if(car.safetyDevice) { alert("The car is safe"); } else { alert("The car is not safe"); } }
4.モジュール(Modules)役割:1.名前空間の衝突を防止する;2.機能モジュールを異なるファイルに簡単に区分し、メンテナンスしやすい.
基本文法
module MyDemo {
export interface IDemo { } export class Demo implements IDemo { } }
エイリアスmodule Shapes { export module Polygons { export class Triangle { } export class Square { } } } import polygons = Shapes.Polygons; var sq = new polygons.Square(); // 'new Shapes.Polygons.Square()'
5.関数(Function)基本文法
function add(x:number, y:number):number { return x + y; } // or var myAdd = function (x:number, y:number):number { return x + y; };
関数の種類var myAdd:(x:number, y:number)=>number = function (x:number, y:number):number { return x + y; };
読み取り可能性を高めるために、パラメータx,yに実際的な意味を与え、このように書くことができる.var myAdd:(baseValue:number, increment:number)=>number = function (x:number, y:number):number { return x + y; };
第二部分numberは戻りタイプです.戻りタイプが必要でない場合は、「void」第三部分のfunctionパラメータタイプを使用して、文脈タイプによって推測してください.省略できます.var myAdd:(baseValue:number, increment:number)=>number = function (x, y) { return x + y; };
オプションのパラメータ// function buildName(firstName:string, lastName?:string) { if (lastName) return firstName + " " + lastName; else return firstName; } var result1 = buildName("Bob");
デフォルトのパラメータ// function buildNameDefaultValue(firstName: string, lastName = "Smith") { return firstName + " " + lastName; } var result1 = buildNameDefaultValue("Bob");
可変パラメータ例えば、C(※)では、メソッドパラメータ定義にparam int[]を使用して、メソッドを呼び出すと、複数のintタイプのパラメータをTypeScriptに渡すことができます.
function buildNameRest(firstName:string, ...restOfName:string[]) { return firstName + " " + restOfName.join(" "); } var employeeName = buildNameRest("Joseph", "Samuel", "Lucas", "MacKinzie")
Lambodsとthisのキーワードvar people={ name:[" "," "," "," "], getName:function(){ return function(){ var i=Math.floor(Math.random()*4); return { n:this.name[i] } } } } var pname=people.getName(); alert(" :"+pname().n);
get Nameの中のthisのキーワードが指すのを呼び出してget Nameで、外部のname属性にアクセスできないので、私達は修正しました.var people = { name: [" ", " ", " ", " "], getName: function () { return ()=> { var i = Math.floor(Math.random() * 4); return { n: this.name[i] } } } } var pname = people.getName(); alert(" :" + pname().n);
再読み込み// function student(name:string):string; function student(age:number):number; function student(numberorage:any):any { if (numberorage && typeof (numberorage) == "string") alert(" "); else alert(" "); } student("Tom");//alert(" ") student(15);//alert(" ")
6.泛型基本文法
function identity<T>(arg: T): T { return arg; } // function identity<T>(arg: T[]): T[] { console.log(arg.length); }
汎型タイプ(共通の関数タイプ)function identity<T>(arg:T):T { return arg; } var myIdentity:<T>(arg:T)=>T = identity;//T // //var myIdentity:{<T>(arg:T): T} = identity;
インターフェースinterface GenericIdentityFn {
<T>(arg:T): T; } function identity<T>(arg:T):T { return arg; } var myIdentity:GenericIdentityFn = identity;
汎型類class GenericNumber<T> { zeroValue:T; add:(x:T, y:T) => T; } var myGenericNumber = new GenericNumber<number>(); myGenericNumber.zeroValue = 0; myGenericNumber.add = function (x, y) { return x + y; };
汎型制約interface Lengthwise { length: number; } function loggingIdentity<T extends Lengthwise>(arg:T):T { console.log(arg.length); return arg; } loggingIdentity(3);//error loggingIdentity({length: 10, value: 3}); // length
汎型クラス制約class Findable<T> { //... } function find<T>(n: T, s: Findable<T>) { // ... }
7.合併インターフェースを結合
interface Box { height: number; width: number; } interface Box { scale: number; } var box: Box = {height: 5, width: 6, scale: 10};
モジュールの結合module Animals { exportclass Zebra { } } module Animals { exportinterface Legged { numberOfLegs: number; } exportclass Dog { } } // module Animals { exportinterface Legged { numberOfLegs: number; } exportclass Zebra { } exportclass Dog { } }
モジュールとクラスの結合class Album { label:Album.AlbumLabel; } module Album { export class AlbumLabel { } }
モジュールと関数の結合function buildLabel(name:string):string { return buildLabel.prefix + name + buildLabel.suffix; } module buildLabel { export var suffix = ""; export var prefix = "Hello, "; } alert(buildLabel("Sam Smith"));
モジュールと列挙を結合enum Color { red = 1, green = 2, blue = 4 } module Color { export function mixColor(colorName:string) { if (colorName == "yellow") { return Color.red + Color.green; } else if (colorName == "white") { return Color.red + Color.green + Color.blue; } else if (colorName == "magenta") { return Color.red + Color.blue; } else if (colorName == "cyan") { return Color.green + Color.blue; } } }
統合できません転載は出典を明記してください.http://www.cnblogs.com/xcong/p/4570235.html文のコードはTs公式サイトと極客学院TSファイルからダウンロードします. http://files.cnblogs.com/files/xcong/TsDemo.zip