1
請讓我知道我是否遵循正確的方法。如果不是,請建議我正確的做法。在Typescript-Angular中擴展沒有打字稿定義的Javascript庫
我在Typescript(Angular 4)中使用了一些JavaScript庫。我有javascript函數的代碼片段:
(function(Handsontable){
var CustomEditor = Handsontable.editors.BaseEditor.prototype.extend();
// ...rest of the editor code
// Put editor in dedicated namespace
Handsontable.editors.CustomEditor = CustomEditor;
// Register alias
Handsontable.editors.registerEditor('theBestEditor', CustomEditor);
})(Handsontable);
我已經延長在這樣棱角分明打字稿文件這個庫:
declare var Handsontable : any;
constructor (
const autocompleteEditor2 = Handsontable.editors.AutocompleteEditor.prototype.extend();
Handsontable.editors.autocompleteEditor2 = autocompleteEditor2;
Handsontable.editors.registerEditor('autocompleteEditor2', autocompleteEditor2);
)
我不想使用@ types/Handsontable,而是我將「聲明var Handsontable:any;」我會擴展它的原型。這是一種IIFE - 立即在使用Typescript的Angular 4中調用函數表達式。請在這方面幫助我。 –
如果您不想爲此下載環境聲明,那就不要這樣做。手工製作的環境聲明完全沒有意義,而且'var foo:any'不會添加任何值,它只是忽略編譯器警告。唯一的辦法是下載該庫的環境聲明,你應該這樣做,因爲這是TS最強大的功能之一。 – Hitmands
我們有的問題是我們正在使用* declare var foo:any *長時間。現在項目正在進行中。但是我們有具體的要求來定製* foo *。所以我們不能這麼做。這就是我要求的原因是否有任何方法可以自定義* foo * * javascript原型* * typescript * –