我試圖給moment.js庫添加額外的功能。我想添加一個函數,它本身需要在它的body中調用一個()函數,而我很難弄明白這一點。Typescript:將一個函數添加到moment.js命名空間
我正在使用Typescript和moment.js的最新版本。我試圖找到一個解決方案,但我什麼也沒有提出。我認爲這種解決方案(Typescript: add function to momentjs' prototype)已經接近工作,但仍然沒有任何結果。
到目前爲止,我所擁有的是:
import * as moment from 'moment';
export namespace moment{
interface Moment{
myFunc(): boolean;
}
}
(moment as any).fn.myFunc = function() {
return moment(....);
};
我不知道我要去哪裏錯了,但是當我嘗試使用時刻庫和myFunc的我想此刻進口(進口*爲時刻'時刻')就足夠了,但myFunc不被識別,只有標準的時刻功能。
Ex。這說myFunc()不被識別。
import * as moment from 'moment'
import Moment = moment.Moment
... moment().add(...) //works
... moment().myFunc() // doesn't recognize myFunc()
有關如何使這項工作的任何建議?
因爲'myFunc'不存在'moment' – Aravind
你應該導入你自己的'moment'類型,而不是'moment'導出的類型。因此,將'import *'從'moment''時刻改爲'import *'作爲'。moment/extended''之類的時刻。 – csander
好吧,我將代碼更改爲@csander建議的方式,但不起作用。我做對了嗎?在上面的例子中,我從'moment'和'* as myMoment從'./ moment.extended'導入'*作爲時刻,我試圖像這樣調用myFunc:'myMoment.myFunc()',但是我得到這個錯誤:屬性'myFunc'在類型'typeof「c:/ Git /.../ moment.extended''上不存在'' –