![](/img/trans.png)
[英]Type '(activeTabIndex: number) => void' is not assignable to type '() => number'.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.