Typescript项目无法识别自定义本地js函数

时间:2018-01-19 19:23:38

标签: typescript typescript-typings

我有一个打字稿项目,我编写了一个自定义的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"
 ]

1 个答案:

答案 0 :(得分:0)

您只是单独声明一个新函数,并希望在某个类或对象中使用它,并且可能在原型级别上使用它。

您可以在原型级添加新功能或覆盖现有功能,但我不建议这样做。

编写新函数并在必要时将对象作为参数传递(在您的情况下为数组)会更容易和更安全

此外,你不必在javascript中编写这样的代码 - typescript可以做到这一点 - 因为没有技巧:)