TypeScript/Cypress 只接受定义的参数值的命令
TypeScript/Cypress command which accept only defined value of parameter
我写了带有参数的 cypress 命令,我想将它更改为函数只接受某些值,例如我希望 columnValue
只能是 'xxx' 或 'yyy' 或 'zzz'。我该怎么做?
Cypress.Commands.add('addColumnAsDimension', (columnName: string) => {
chartMenu.addColumnButton.click();
chartMenu.columnNameButton(columnName).click();
chartMenu.addAsDimensionButton.click();
});
您可以为此使用 union type:
type Column = 'xxx' | 'yyy' | 'zzz'
Cypress.Commands.add('addColumnAsDimension', (columnName: Column) => {
chartMenu.addColumnButton.click();
chartMenu.columnNameButton(columnName).click();
chartMenu.addAsDimensionButton.click();
});
此外,如果您希望编译器检查您自定义的 Cypress 方法调用,您还必须为该方法添加一个 type definition:
declare namespace Cypress {
interface Chainable<Subject> {
addColumnAsDimension(columnName: Column): void
}
}
现在编译器检查你的参数:
我写了带有参数的 cypress 命令,我想将它更改为函数只接受某些值,例如我希望 columnValue
只能是 'xxx' 或 'yyy' 或 'zzz'。我该怎么做?
Cypress.Commands.add('addColumnAsDimension', (columnName: string) => {
chartMenu.addColumnButton.click();
chartMenu.columnNameButton(columnName).click();
chartMenu.addAsDimensionButton.click();
});
您可以为此使用 union type:
type Column = 'xxx' | 'yyy' | 'zzz'
Cypress.Commands.add('addColumnAsDimension', (columnName: Column) => {
chartMenu.addColumnButton.click();
chartMenu.columnNameButton(columnName).click();
chartMenu.addAsDimensionButton.click();
});
此外,如果您希望编译器检查您自定义的 Cypress 方法调用,您还必须为该方法添加一个 type definition:
declare namespace Cypress {
interface Chainable<Subject> {
addColumnAsDimension(columnName: Column): void
}
}
现在编译器检查你的参数: