我已经声明了以下类型:

export type Maybe<T> = T | null;

export type HostelId = {
  id: Scalars['String']
}


我在此功能中使用的

book (hostel: Array<Maybe<HostelId>>) : boolean {
    console.log (hostel.id[])
}


但是我得到这个编译错误

Property 'id' does not exist on type 'Maybe<HostelId>[]'.

最佳答案

您在代码上遇到的唯一问题是您正在访问id属性
在数组对象上,而不是实际的HostelId对象。

export type Maybe<T> = T | null;

export type HostelId = {
  id: String
}


function book (hostel: Array<Maybe<HostelId>>) : boolean {
    hostel.map((h) => {
      // I wrote this if statement in order to suppress the
      // "Object is possibly 'null'." error
      if (h != null && h.id != null){
        console.log(h.id)
      }
    })
}

let x : HostelId = {id: 'asdf'}
book([x])

10-06 15:12