[컴][웹] typescript 에서 native type 에 함수를 추가하는 방법

extend function / extend class / mixin



typescript 에서 native type 에 함수를 추가하는 방법


interface 설정


declare 의 사용

declare 는 이 변수가 어딘가에 var 로 정의되어 있다고 compiler 에게 이야기 해주는 역할을 한다. 그래서 output 에 declare 로 설정된 이 변수에 대해 추가로 var 하지 않는다.

static 함수 추가



codes

declare global {
    interface Array<T> {
        find(value: any):any;
    }

    interface ArrayConstructor { // static methods
        from(arrayLike: any): any;
    }

    interface String {
        startsWith(search: any, pos: any): any;
    }
}

if (!Array.prototype.find) {
    Object.defineProperty(Array.prototype, 'find', {
        value: function(predicate:any) {
            ...
            return undefined;
        },
        configurable: true,
        writable: true
    });
}

if (!Array.from) {
    Array.from = (function () {
        ...
  
        // The length property of the from method is 1.
        return function from(arrayLike: any/*, mapFn, thisArg */) {
            ...
            return A;
        };
    }());
}





댓글 없음:

댓글 쓰기