将变量作为字符串获取时出现 Typescript Cypress 错误

den*_*xic 2 typescript cypress

我正在迁移到将 Typescript 与 Cypress 一起使用,但在类型转换别名方面遇到问题。我期待着,string但是打字稿正在期待着JQuery<HTMLElement>

例子:

cy.wrap("a string").as("myString")

cy.get("@myString").then( myString => {
   console.log(typeof myString) // => "string"
})
Run Code Online (Sandbox Code Playgroud)

我检查了打字稿定义cy.get并发现:

get<E extends Node = HTMLElement>(selector: string, options?: Partial<Loggable & Timeoutable & Withinable & Shadow>): Chainable<JQuery<E>>
// AND
get<E extends Node = HTMLElement>(selector: string, options?: Partial<Loggable & Timeoutable & Withinable & Shadow>): Chainable<JQuery<E>>
Run Code Online (Sandbox Code Playgroud)

目前,我收到以下错误:

Argument of type '(myString: string) => string' is not assignable to parameter of type '(this: ObjectLike, currentSubject: JQuery<HTMLElement>) => void'.
      Types of parameters 'myString' and 'currentSubject' are incompatible.
        Type 'JQuery<HTMLElement>' is not assignable to type 'string'.
Run Code Online (Sandbox Code Playgroud)

我该如何修复这个错误?

谢谢。

den*_*xic 8

您可以通过以下方式指定输出:

cy.get<string>("@myString").then( myString => {
   // Do something here
})
Run Code Online (Sandbox Code Playgroud)