无法编译此 Typescript
Cannot get this Typescript to compile
这是我得到的编译错误:
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')
}
}
我认为它不知道 'this' 是什么。我在 Typescript 文档中找不到任何相关内容 (https://www.typescriptlang.org/docs/home.html)
这是从一个有效的 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 上下文中不起作用。那里有很多错误信息。
你必须明确地告诉它的定义并在打字稿中启动 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')
}
}
Nightwatch.js 是一个 JavaScript 库。 JavaScript 库不包含类型信息。为了让 TypeScript 理解 waitForElementVisible
和其他 nightwatch 函数的存在,你应该通过 运行:
安装打字信息
npm install --save-dev @types/nightwatch
那么不需要PlayMa256指定的解决方法。
这是我得到的编译错误:
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')
}
}
我认为它不知道 'this' 是什么。我在 Typescript 文档中找不到任何相关内容 (https://www.typescriptlang.org/docs/home.html)
这是从一个有效的 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 上下文中不起作用。那里有很多错误信息。
你必须明确地告诉它的定义并在打字稿中启动 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')
}
}
Nightwatch.js 是一个 JavaScript 库。 JavaScript 库不包含类型信息。为了让 TypeScript 理解 waitForElementVisible
和其他 nightwatch 函数的存在,你应该通过 运行:
npm install --save-dev @types/nightwatch
那么不需要PlayMa256指定的解决方法。