網站搜尋

javascript - 轉換為映射對象


我有錯誤

型別 'string' 無法指派給型別 '() => string'

this.selectedValue.display = headerOcr.author.profession;

private selectedValue: IDocumentType = {
    id: '1',
    display: () => '',
    label: ''
}

這是「selectedValue」的預設初始化值

我應該對 headerOcr.author.profession 做什麼?display;() => '' 應該有 const 類型。

答案#1

型別 'string' 無法指派給型別 '() => string'

Typescript 期望你所有的物件屬性都是字串,所以有兩種方法:

  1. 在 display:() => return '', 中的回傳值
  2. 將你的 IDocumentType 介面改成這樣:

IDocumentType { /*...*/ display:() => string /*...*/ }

答案#2

如果你將函數定義為 string 類型,就無法傳遞該函數。你要麼更改 headerOcr 的定義,要麼在將其傳遞給 display 之前評估函數調用。

定義的更改將如下所示:

IDocumentType {
  display: () => string
}

因此你必須將它用作 IDocumentType.display()