[英]Return an array of different types in TypeScript
在TypeScript 2.5.3中,我有一堆作為鏈接的硒WebElement。 我需要將它們的目標存儲在字符串數組中。 從C#出發,我將Linq與.Select()
,它本身從選擇器返回返回類型的列表。 在Typescript中,這似乎不太好用:
let categoryLinkElements = await this.driver.findElements(By.css('ul li a'));
let categoryLinks = categoryLinkElements.filter(async linkElement => await linkElement.getAttribute('href'));
categoryLinkElements
是WebElement
的數組。 並且linkElement.getAttribute('href')
返回Promise<string>
。 因為使用了await
,所以我希望categoryLinks
是一個字符串數組,就像C#中List.Select()
的相同行為一樣。 相反, categoryLinks
是WebElement[]
。
為什么? 以及如何獲得正確的返回值?
Array.filter
在這里似乎是錯誤的,相反,它應該用於返回與輸入數組相同的值,但帶有一些過濾條件。 而是Array.map
是C#中List.Select
的正確等效項。
預期的工作如下:
let categoryLinks = categoryLinkElements.map(async linkElement => await linkElement.getAttribute('href'));
作為Typescript和Javascript的初學者,此后似乎是一個愚蠢的問題...對不起:/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.