0
我想添加一個屬性到javascript'Date'原型。如何將屬性添加到打字稿中的現有類型?
在JavaScript中,我只是這樣做:
Object.defineProperty(Date.prototype, "fullYearUTC", {
get: function() { return this.getUTCFullYear(); },
enumerable: true,
configurable: true
});
我覺得還是能夠做到的打字稿如下:
class Date
{
get fullYearUTC(): number { return this.getUTCFullYear() }
}
,但我得到的錯誤
Cannot redeclare block-scoped variable 'Date'.
爲什麼不工作?
(請您是否不認爲這樣做沒有意見是一個好主意。這個問題不是這個。)
感謝。不過,我真的很喜歡使用打字稿來實現這些屬性。似乎是一種語言中的漏洞,國際海事組織。 – Spongman
你正在使用typescript,例如,如果你有一個錯字並且寫了'configurabl:true',你會得到一個編譯錯誤,因爲這個對象與'PropertyDescriptor'類型不匹配。當你使用'interface Date'添加你的getter時,你使用的是打字稿,以便從現在開始,所有的日期實例(就打字稿而言)具有'fullYearUTC'。至於運行時方面,你只是不能重新聲明'Date'對象,而不是使用javascript或打字稿。 –