簡體   English   中英

無法在 Conf.ts 中聲明 onComplete function >>Getting error -- Type '(passed: any) => void' is notassignable to type '() => void'.ts(2322)

[英]Unable to declare onComplete function in Conf.ts >>Getting error -- Type '(passed: any) => void' is not assignable to type '() => void'.ts(2322)

我正在從頭開始研究 Protractor - browserstack 框架。

在使用onComplete function 時,如 conf.ts 中的網站所述 - https://automate.browserstack.com/dashboard/v2/quick-start/get-started#introduction

 // Code to mark the status of test on BrowserStack based on test assertions
      onComplete: function (passed) {
        if (!passed) {
          browser.executeScript('browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "At least 1 assertion has failed"}}');
        }
        if (passed) {
          browser.executeScript('browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"passed","reason": "All assertions passed"}}');
        }
      }

我在控制台上遇到以下錯誤

*附加調試器。 conf.ts:87:1 - 錯誤 TS2322:類型 '(passed: any) => void' 不可分配給類型 '() => void'。 87 完成:function(通過){

node_modules/protractor/built/config.d.ts:410:5
 410     onComplete?: () => void;
         ~~~~~~~~~~
 The expected type comes from property 'onComplete' which is declared here on type 'Config'*



Can someone help me understand how to resolve this error?

這看起來像是 onComplete 的類型定義中的錯誤。 在用法中,看起來 onComplete 傳遞了一個變量。 參見: https://github.com/angular/protractor/blob/master/lib/frameworks/jasmine.js#L109-L115

const originalOnComplete = runner.getConfig().onComplete;

jrunner.onComplete(async(passed) => {
  try {
    if (originalOnComplete) {
      await originalOnComplete(passed);
    }

盡管您可以創建 TypeScript config.ts,但最好創建一個 config.js 文件。 當您想引用瀏覽器 object 時,使用 config.ts 也可能會遇到問題。 瀏覽器變量必須通過 require 而不是 import 引入。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM