TypeScript 基礎

1.什麼是 TypeScript:

(1)TypeScript 是一種由微軟開發的開源的編程語言,它是 JavaScript 的一個超集,拓展了 JavaScript 的語法;

(2)現有的 JavaScript 代碼可與 typescript 一起工作無需任何修改;

(3)typescript 可處理已有的 JavaScript 代碼,並只對其中的 typescript 代碼進行編譯;

(4)typescript 通過類型註解提供編譯時的靜態類型檢查;

(5)typescript 是語法糖,瀏覽器不認識,只能編譯成 js;

2.TypeScript 的安裝使用;

(1)使用 npm 下載 typescript;

npm install typescript -g               //建議安裝在全局

(2)在自己的項目文件夾中創建一個 .ts 的文件;

(3)通過命令將這個 ts 文件編譯爲 js 文件,會出現一個同名的 js 文件;

tsc "文件名"                 //將ts文件轉爲js文件

(4)寫自己的 html 文件,將編譯好的 js 導入;

3.Typescript 的基本數據類型:

(1)布爾類型(Boolean):

var flag : Boolean;                        //布爾類型
console.log(flag = true);                  //true

4.類型批註:

(1)typescript 通過類型批註提供靜態類型以在編譯時啓動類型檢查;

(2)基本類型的批註是:number,bool,string;

(3)弱或動態類型的結構是 any 類型;

function area(uname : string,width : number,height : number){             //類型批註
    var num = width * height;
    return 'my name is ' + uname  + ';' + 'my age is ' + num
}

document.body.innerHTML = area('jack',11,2)               //輸出my name is jack;my age is 22
 //如果有類型不匹配的參數,在編譯成js時就會報錯

4.接口(interface):

(1)接口可以作爲類型批註;

(2)接口中的屬性加上問號,輸出但沒有賦予值時,最後得到 undefined;如果不加,不輸出或者沒有賦予值時,就會報錯;

interface Shape{
    name : string,
    width : number,
    height : number,
    color? : string,             //加上問號以後,可以不用輸出,也可以不用賦值(輸出但沒有賦值會得到undefined)
}

function fun(shape : Shape){
    var num = shape.width * shape.height;
    return 'I am ' + shape.name  + ';' + 'my age is ' + num + ';' + 'color is ' + shape.color;          //輸出
}

console.log( fun( {name : 'jack',width : 11,height : 2} ) )            //沒有給color賦值
//輸出 I am jack;my age is 22;color is undefined

5.箭頭函數表達式:

(1)相當於 js 中的函數,它的好處就是可以自動將函數中的 this 附加到上下文中;

(2)實例比較:

//原生 js
var exam = {
    name : 'jack',
    pop : function(){
        console.log('你好' + this.name)                  //輸出this.name爲'jack'

        setTimeout(function(){
            console.log('三秒鐘會出現:' + this.name)          //輸出this.name爲一個空值
        },3000)
    }
}
exam.pop();

將原生 js 中的 function 換成箭頭函數;

//typescript 中箭頭函數
var exam = {
    name : 'jack',
    pop : function(){
        console.log('你好' + this.name)                  //輸出this.name爲'jack'

        setTimeout(() => {                             //注意是更換這個function
            console.log('三秒鐘會出現:' + this.name)          //輸出this.name爲'jack'
        },3000)
    }
}
exam.pop();

6.類(class):

(1)typescript 支持 ES6 中的類 class 對象;

(2)class 類中,有個構造器(coustructor),構造器中參數的作用域是局部作用域;

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章