Я новичок в TypeScript, и я переделываю свой набор тестов только для Cypress API, чтобы использовать TypeScript. Моя цель состоит в том, чтобы указать c конечными точками таким образом, чтобы TypeScript знал, что response.body.email
- это строка в моем коде и т. Д. c., Так что мне не нужно полагаться на неявный тип 'any':
cy.request('GET', '/foo')
.then((response) => {
// TS knows `response.body.email` is a string and `response.body.count` is a number
В идеальном мире это можно было бы уловить непосредственно из определений Сваггера, но я в порядке с более ручными методами.
Возможно ли этого добиться?
В идеале я мог бы интегрироваться с одним из этих двух NPM модулей: https://www.npmjs.com/package/@cypress / schema-tools или https://www.npmjs.com/package/@jc21 / cypress -swagger-validation
Похоже, в моем node_modules/cypress/types/index.d.ts
они имеют следующие соответствующие биты:
declare namespace Cypress {
interface Response {
allRequestResponses: any[]
body: any
duration: number
headers: { [key: string]: string }
isOkStatusCode: boolean
redirectedToUrl: string
requestHeaders: { [key: string]: string }
status: number
statusText: string
}
interface Chainable<Subject = any> {
request(url: string, body?: RequestBody): Chainable<Response>
request(method: HttpMethod, url: string, body?: RequestBody): Chainable<Response>
request(options: Partial<RequestOptions>): Chainable<Response>
}
}