programing

유형 스크립트를 사용하여 프로토타입 함수 정의

testmans 2023. 6. 14. 21:43
반응형

유형 스크립트를 사용하여 프로토타입 함수 정의

프로토타입 함수를 정의하려고 하면 다음과 같은 결과를 얻을 수 있습니다.

오류 TS2339: 'applyParams' 속성이 'Function' 유형에 없습니다.

Function.prototype.applyParams = (params: any) => {
     this.apply(this, params);
}

이 오류를 해결하는 방법은 무엇입니까?

이름이 지정된 인터페이스에서 메서드를 정의Function순식간에.d.ts파일. 그러면 글로벌과 병합 선언이 발생합니다.Function유형:

interface Function {
    applyParams(params: any): void;
}

화살표 기능을 사용하면 안 됩니다.this외부 컨텍스트에 구속되지 않습니다.정규 함수 식을 사용합니다.

Function.prototype.applyParams = function(params: any) {
    this.apply(this, params);
};

이제 작동합니다.

const myFunction = function () { console.log(arguments); };
myFunction.applyParams([1, 2, 3]);

function myOtherFunction() {
    console.log(arguments);
}
myOtherFunction.applyParams([1, 2, 3]);

언급URL : https://stackoverflow.com/questions/41773168/define-prototype-function-with-typescript

반응형