2013-02-06 138 views
1

我正在編寫一組TypeScript類,它們使用繼承來維護「類型」層次結構(因爲缺少更好的短語)。TypeScript中的賦值運算符重載

例如說我有一個基類...

class Parent { 
} 

,然後我得到這個從其他類...

class Child extends Parent { 
} 

到目前爲止好......但讓我們說,現在我希望能夠直接爲我的Child類指定一些內容,如下所示:

private xyz: Child = "Foo Bar"; 

TypeScript當前拋出com堆垛機/語法錯誤......

不能字符串轉換爲兒童

如果我可以指定字符串字符串(同樣,只是一個原型,因爲是我的孩子類),如何我是否會重載我的類的賦值運算符來接受字符串?

編輯:我想這...

class Child extends Parent implements String { 
} 

...還是,它並沒有收到預期的效果。

從C#的背景說起,我想我試圖達到相當於...

public static implicit operator Child(string value 
{ 
    return new Child(value); 
} 

回答

2

在基於類的語言,你通常會接受的構造函數的參數,就像這樣:

class Parent { 
} 

class Child extends Parent { 
    constructor(private someProp: string) { 
     super(); 
    } 
} 

var child = new Child("Foo Bar"); 
+0

從C#背景說起來,難道你沒辦法做到相當於public static implicit operator Child(string value){}嗎? – series0ne

+0

此功能目前在TypeScript中不存在 - 隱式和顯式轉換在C#中是一個整潔的功能。你可以向TypeScript團隊推薦它:http://typescript.codeplex.com/ – Fenton

+0

好,很酷,謝謝你的回答,這清除了一切! – series0ne