如何解决'隐含性有一个";任何";type'在数组上进行映射时



我正在尝试映射这样的数组:

const formatted = results.map(item => item.payload)

但我知道"item"隐含性有一个";任何";当我把鼠标悬停在它上面时,输入。我知道用typescript我应该定义这个函数的参数,所以我试着这样做:

interface IItem {
alert_id: null
event_type: string
id: string
payload: string
timestamp: string
}
const formatted = results.map(item: IItem => item.payload)

一个项目基本上由字符串和一些返回为null的项目组成:

{
alert_id: null
event_type: "test"
id: "sd09f82-f8asf"
payload: "{'test': 'accepted'}"
timestamp: "2019-12-10"
}

我得到所有这些错误

return new TSError(diagnosticText, diagnosticCodes)
^
TSError: ⨯ Unable to compile TypeScript:
src/application.ts:31:11 - error TS6196: 'IItem' is declared but never used.
31 interface IItem {
~~~~~
src/application.ts:65:54 - error TS7006: Parameter 'IItem' implicitly has an 'any' type.
65     const formatted = results.map(item: IItem => item.payload)
~~~~~
src/application.ts:65:63 - error TS2532: Object is possibly 'undefined'.
65     const formatted = results.map(item: IItem => item.payload)
~~~~~
src/application.ts:65:69 - error TS2339: Property 'payload' does not exist on type 'Event'.
65     const formatted = results.map(item: IItem => item.payload)
 ~~~~~~~
src/application.ts:65:52 - error TS1005: ',' expected.
65     const formatted = results.map(item: IItem => item.payload)

将要映射的参数封装在参数中

const formatted = results.map((item: IItem) => item.payload).

最新更新