Добавление существующих функций в TypeScript: Node.getAttribute()

Каков наилучший способ добавить функцию в машинописный текст, который уже существует? В моем случае это Node.getAttribute(), который на самом деле встроен в браузер, но пока не распознается TypeScript. Ошибки: Cannot find property 'getAttribute' on type 'Node'.

В моем случае я столкнулся с этой ошибкой, выполнив следующее:

var xmlDocument = new DOMParser().parseFromString(xmlString, "text/xml"),
    rootfile    = xmlDocument.getElementsByTagName("aNode")[0];

console.log(rootfile.getAttribute("anAttribute"));

Это удается в браузере, но выдает ошибку TypeScript.


person sluijs    schedule 24.05.2015    source источник


Ответы (2)


Поскольку интерфейсы открыты, просто сообщите об этом typescript:

interface Node {
    getAttribute(attr: string): string;
}

Я рекомендую делать это в файле globals.d.ts в корне вашего проекта.

person basarat    schedule 24.05.2015
comment
Я попробую это, но когда я изменяю lib.d.ts с помощью тех же инструкций, ничего не происходит... - person sluijs; 25.05.2015
comment
lib.d.ts, который вы изменяете, не обязательно используется вашим Dev Tool. - person basarat; 25.05.2015

Вам следует искать файлы d.ts для Node по адресу https://github.com/borisyankov/DefinitelyTyped Это было бы проще, чем переписывать все определения узлов вручную...

person Vincent J    schedule 25.05.2015