一致,都會致使報錯。 建議使用npm 全局安裝typeScript 而後使用 tsc *.ts 進行編譯TS文件前端
函數返回什麼類型,可是他必須return 不然TS會報錯java
app的值,必須是string類型,不然報錯 ,這就是類型推論程序員
string又能夠是number,只要符合其中一個類型便可,固然你也能夠寫更多個。es6
面向對象這一說法,可是實際在TS中的面向對象更加完整,它跟JAVA這些語言同樣,經過接口和類去完整的面向對象編程。面試
好比 :數據庫
class ask{ name:string; tel ? :number ; //這裏爲何加問號,由於你不必定能拿到她的號碼,若是拿不到,那麼即可以不傳參數, 可是若是不加? ,你又沒那麼號碼,那麼你沒有參數傳進來,TS就會報錯 age:number ; constructor(name,age,tel){ this.name=name; this.age=age; this.tel=tel } } interface check { name : string; age:number; tel ? :number; } let woman :check = new ask ('rose',20,1888888888);//假設你拿到美女全部資料 傳入構造函數
這樣你能夠打印一把 console.log(woman),看看它是怎樣的,上面這段代碼是沒有報錯的。npm
上面的代碼經過tsc命令編譯成JS文件後編程
var ask = /* @class / (function () {後端
function ask(name, age, tel) { this.name = name; this.age = age; this.tel = tel; } return ask;
}());數組
let woman = new ask('rose', 20, 1888888888);
console.log(woman)
"這裏要注意,不少TS的代碼編譯後,是不會出如今JS文件中,好比const enum的枚舉, interface這些,固然後面還會遇到更多" ------------- ### 元組的概念
------- ### 枚舉 enum 和 const enum的區別
他也不會報錯,可是我不建議你這樣作,畢竟誰沒事找事呢?
### 還有一種常量枚舉
const enum Directions {
Up, Down, Left, Right
}
let directions = [Directions.Up, Directions.Down, Directions.Left, Directions.Right];
// 結果是 0 1 2 3
* 假如包含了計算成員,則會在編譯階段報錯: * const enum Color {Red, Green, Blue = "blue".length}; * 常數枚舉與普通枚舉的區別是,它會在編譯階段被刪除,而且不能包含計算成員。 一試便知
* 一個類一次只能夠繼承一個接口,可是能夠一次對應多個接口 * 要想實現多個類繼承,那麼使用子類繼續繼承其餘類,循環下去
interface check {
name: string; age: number; hobby: Array<number> fuck: number[] //這兩種寫法是同樣的
}
class exp implements check {
name: string age: number hobby:Array<number> fuck: number[] constructor(name, age, hobby, fuck) { this.name = name; this.age = age; this.hobby = hobby; this.fuck = fuck; }
}
let app = new exp('hello', 18, [1, 2, 3], [2, 3, 4])
-------通過TS編譯後獲得
var exp = /* @class / (function () {
function exp(name, age, hobby, fuck) { this.name = name; this.age = age; this.hobby = hobby; this.fuck = fuck; } return exp;
}());
var app = new exp('hello', 18, [1, 2, 3], [2, 3, 4]);
typeScript可能最難的就是如何理解優雅的面向對象編程,接口interface只是爲了描述而已, 真正去實現,須要class類去實現,ES6在typeScript中位置舉足輕重, 因此我建議你先去學習原生javaScript+ES6再來學習typeScript,那樣會輕鬆不少, 下面放一個阮一峯的ES6的學習文檔連接,裏面寫得很是詳細,必定要認真看。 [ECMAScript 6 入門](http://es6.ruanyifeng.com/)