0

我正在尝试使用 webdriver.io 在我的 TypeScript SPA 上设置测试。我设置了 wdio 但由于 wdio 引入的新类型引起的各种类型冲突,无法编译 typescript。

例如 wdio 引入了 $ ,它与 jQuery 中的 $ 冲突:

node_modules/@types/jquery/misc.d.ts:6536:15 - error TS2451: Cannot redeclare block-scoped variable '$'.

6536 declare const $: JQueryStatic;
                   ~

  node_modules/@wdio/sync/webdriverio.d.ts:38:18
    38 declare function $(selector: string | Function): WebdriverIO.Element;
                        ~
    '$' was also declared here.

Node还引入了各种冲突:

node_modules/@types/node/index.d.ts:66:11 - error TS2300: Duplicate identifier 'IteratorResult'.

66 interface IteratorResult<T> { }
             ~~~~~~~~~~~~~~

  node_modules/typescript/lib/lib.es2015.iterable.d.ts:41:6
    41 type IteratorResult<T, TReturn = any> = IteratorYieldResult<T> | IteratorReturnResult<TReturn>;
            ~~~~~~~~~~~~~~
    'IteratorResult' was also declared here.

而且,更微妙的是,节点类型改变了 a 的返回类型setTimeout

wwwroot/app/shared/lib/decorators/debounce.ts:36:17 - error TS2345: Argument of type 'Timer' is not assignable to parameter of type 'number'.

36                 setTimeout(method.bind(this, ...args), milliseconds)

我肯定想使用 TypeScript 来构建测试和应用程序,因为我想在测试中利用应用程序类型。我认为这意味着我需要串联构建它们。

是否存在任何解决方法?

4

0 回答 0