Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法编译此类型脚本_Javascript_Typescript_Nightwatch.js - Fatal编程技术网

Javascript 无法编译此类型脚本

Javascript 无法编译此类型脚本,javascript,typescript,nightwatch.js,Javascript,Typescript,Nightwatch.js,这是我得到的编译错误: error TS2339: Property 'waitForElementVisible' does not exist on type 'signinPage' 这是重要的一页: export class signinPage{ constructor(){ emailInput: { selector: 'input[type=email]'; }; passwordInput: { select

这是我得到的编译错误:

 error TS2339: Property 'waitForElementVisible' does not exist on type 'signinPage'
这是重要的一页:

export class signinPage{
constructor(){
     emailInput: {
        selector: 'input[type=email]';
      };
      passwordInput: {
        selector: 'input[name=password]';
      };
      signinButton: {
        selector: 'button[type=submit]';
      };
}

signin(email, password){
    return this.waitForElementVisible('@emailInput')
      .setValue('@emailInput', email)
      .setValue('@passwordInput', password)
      .waitForElementVisible('@signinButton')
      .click('@signinButton')
    }


}
我想它不知道这是什么。我在Typescript文档中找不到任何相关内容()

这是从一个正在工作的JavaScript项目转换而来的。JavaScript版本如下所示:

const signinCommands = {  
  signin: function(email, password) {
    return this.waitForElementVisible('@emailInput')
      .setValue('@emailInput', email)
      .setValue('@passwordInput', password)
      .waitForElementVisible('@signinButton')
      .click('@signinButton');
  }
};

module.exports = {   
  commands: [signinCommands],
  elements: {
    emailInput: {
      selector: 'input[type=email]'
    },
    passwordInput: {
      selector: 'input[type=password]'
    },
    signinButton: {
      selector: 'input[type=button]'
    },
  }
};

TypeScript课程告诉我可以使用JavaScript文件。这根本不是真的,因为此文件在Typescript上下文中不起作用。有很多错误信息。

你必须明确地说出它的定义,并在typescript中启动waitForElementVisible

export class signinPage{
    waitForElementVisible: (value?: string) => any;
    constructor(){
         emailInput: {
            selector: 'input[type=email]';
          };
          passwordInput: {
            selector: 'input[name=password]';
          };
          signinButton: {
            selector: 'button[type=submit]';
          };
          this.waitForElementVisible= () => {}
    }

    signin(email, password){
        return this.waitForElementVisible('@emailInput')
          .setValue('@emailInput', email)
          .setValue('@passwordInput', password)
          .waitForElementVisible('@signinButton')
          .click('@signinButton')
    }
}

js是一个JavaScript库。JavaScript库不包含类型信息。为了让TypeScript理解waitForElementVisible和其他存在的夜视功能,您应该通过运行以下命令来安装键入信息:

npm install --save-dev @types/nightwatch

那么就不需要PlayMa256指定的解决方法。

我没有看到任何
waitForElementVisible
..@Cerbrus的声明-我不应该定义waitForElementVisible。它在JavaScript中工作@Stevestuple您对JavaScript中的
waitForElementVisible
的定义在哪里?@Stevestuple:那么您需要告诉Typescript函数存在。@Cerburs我相信waitForElementVisible是Nightwatch的一部分。jsI更新了我以前的问题,并在github上完成了一个问题示例。因此,我想结束这个问题,因为我希望找到上一个问题的答案:David Walschots-npm install-save dev@types/nightwatch没有任何区别。@根据找到的类型定义,
这个
应该具有
nightwatch浏览器
的界面。但是,在您的TypeScript代码中,
这个
指的是类型
符号页
。David Walschots-别担心-问题现在已经解决了。见: