如何匯出原型方法?
我創建了一個原型方法:
Array.prototype.remove = function(elementToRemove: any): void {
var __idx = this.indexOf(elementToRemove);
if (__idx >= 0) {
this.splice(__idx, 1);
} else {
throw new Error(`Cannot find element ${elementToRemove}`)
}
}
我想匯出它并在另一個檔案中使用。但我不知道如何添加匯出:
兩個都
export Array.prototype.remove = function(elementToRemove: any)
和
Array.prototype.remove = export function(elementToRemove: any)
不起作用,我收到“預期表達”錯誤。那么如何匯出呢?
ps:我沒有使用nodejs,我使用的是帶有HTML和CSS的chrome Web前端。
uj5u.com熱心網友回復:
根本問題是您的代碼會產生副作用- 它會在Array.prototype.
一種選擇是匯出一個函式,該函式在呼叫時會將函式添加到原型中:
export const addRemoveToPrototype = () => {
Array.prototype.remove = function( // ...
然后消費者可以通過做來使用它
import { addRemoveToPrototype } from './addRemoveToPrototype';
addRemoveToPrototype();
另一種選擇是簡單地在模塊的頂層運行該代碼:
Array.prototype.remove = function(elementToRemove: any): void {
然后消費者可以只匯入模塊,但不能對它做任何事情:
import './addRemoveToPrototype';
也就是說,我真的建議不要改變內置物件 - 它會使代碼變得脆弱且更容易破壞,尤其是當其他腳本在同一環境中運行時。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/482445.html
標籤:javascript 打字稿 目的 进口 出口
