Как разрешить конфликты ввода, вызванные webdriver.io

Я пытаюсь настроить тестирование своего TypeScript SPA с помощью webdriver.io. Я установил wdio, но не смог скомпилировать машинописный текст из-за различных конфликтов типов, вызванных новыми типами, введенными wdio.

Например, 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.

и, что более тонко, типы узлов меняют тип возвращаемого значения 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 для создания как тестов, так и приложения, так как я хочу использовать типы приложений в тестах. Я полагаю, это означает, что мне нужно строить их вместе.

Существуют ли какие-либо обходные пути для этого?

0 ответов

Другие вопросы по тегам