Javascript 问题的类型脚本实例

Javascript 问题的类型脚本实例,javascript,typescript,Javascript,Typescript,我有下面的代码可以工作,但是当我将if改为p instanceof Address时,这个条件就永远不会满足 p是一个对象,但我想根据已定义的类型检查它: export default class Address { public addressLine1: string = '' public addressLine2: string | null = null public town: string = '' public postcode: string = '' }

我有下面的代码可以工作,但是当我将if改为
p instanceof Address
时,这个条件就永远不会满足

p
是一个对象,但我想根据已定义的类型检查它:

export default class Address {
  public addressLine1: string = ''
  public addressLine2: string | null = null
  public town: string = ''
  public postcode: string = ''
}


  const displayResults = (list: any) => {
    const slicedList = list.slice(0, 3)

    const html = 
      slicedList.map((p: string | Address) => {
        console.log('p: ', p instanceof Address)
        if (typeof p === 'object') {
          return <span key={`id-${uniqid()}`}>{addressToString(p)}</span>
        }
        return <span key={`id-${uniqid()}`}>{p}</span>
      })

    if (list.length > 3) {
      html.push(elipsis)
    }

    return html
  }
导出默认类地址{
公共地址行1:字符串=“”
公共地址行2:字符串| null=null
公共城镇:字符串=“”
公共邮政编码:字符串=“”
}
const displayResults=(列表:任意)=>{
常量slicedList=list.slice(0,3)
常量html=
slicedList.map((p:string | Address)=>{
console.log('p:',p instanceof Address)
如果(p的类型=='object'){
返回{addressToString(p)}
}
返回{p}
})
如果(列表长度>3){
html.push(省略)
}
返回html
}

console.log(p instanceof Address)
怎么说?@SebastianKaczmarek总是出错您是否尝试过
console.log(p.constructor.name)
?console.log(typeof p)
怎么说?如果
p
来自服务器或作为对象文本创建,
p
将不会是该类的实例,即使它与该类具有相同的字段。