2015-04-24 44 views
1

我剛開始學習打字稿,我有一個很難包裝我的身邊從一開始教程的界面行爲腦袋上http://www.typescriptlang.org/Playground/#tut=ex5打字稿接口類型從一開始教程檢查

據我瞭解,界面應執行參數的類型,但是這一行拋出我送行

var user = new Student("Jane", "M.", "User"); 

它編譯正確,一切都很好,但是當我將它修改爲

var user = new Student(1, 2, 3); 

它也編譯得很好。

任何人都可以闡述爲什麼它的工作?

我知道這是一個初學者的問題,但我無法在網上找到任何關於此搜索的信息,而且我周圍也沒有任何TypeScript專家。

由於提前, 尤金

回答

1

的類型Student構造函數的參數是any因爲沒有類型註釋:

class Student { 
    fullname : string; 
    constructor(public firstname, public middleinitial, public lastname) { 
     this.fullname = firstname + " " + middleinitial + " " + lastname; 
    } 
} 

如果我們改變它有一些類型的註釋,我們將得到一個錯誤:

class Student { 
    fullname : string; 
    constructor(public firstname: string, // <-- add ': string' here 
       public middleinitial: string, // and here 
       public lastname: string) { // and here 
     this.fullname = firstname + " " + middleinitial + " " + lastname; 
    } 
} 

var x = new Student(1, 2, 3); // Error 
+0

謝謝你的迴應,瑞恩!但它確實讓我想知道,如果接口不能強制執行數據類型,那麼在接口中指定它有什麼意義? – Eugene