我有一个打字稿项目,我编写了一个自定义的java脚本函数来扩展现有的外部接口。它符合要求,但在运行时它会抛出findByText不是函数的错误。我可以向前迈进的任何帮助都很好。
结构如下 -
element-extend.js
export function findByText (compareText) {
let foundElement;
return this.each((element) => {
element.getWebElement().getText().then((elementText) => {
if (elementText.trim() === compareText) {
foundElement = element;
}
});
}).then(() => foundElement);
}
element-extend.d.ts
import { ElementArrayFinder, ElementFinder } from 'protractor/built/element';
import { protractor } from 'protractor';
declare module 'protractor/built/element' {
export interface ElementArrayFinder {
findByText(text: string) : ElementFinder;
}
}
在some-file.ts中使用
useExtendedFunction(){
elementArray.findByText();
}
tsconfig.json
"include": [
"helpers/jshelpers/element-extend.d.ts"
]
答案 0 :(得分:0)
您只是单独声明一个新函数,并希望在某个类或对象中使用它,并且可能在原型级别上使用它。
您可以在原型级添加新功能或覆盖现有功能,但我不建议这样做。
编写新函数并在必要时将对象作为参数传递(在您的情况下为数组)会更容易和更安全
此外,你不必在javascript中编写这样的代码 - typescript可以做到这一点 - 因为没有技巧:)