Javascript 问题的类型脚本实例
我有下面的代码可以工作,但是当我将if改为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 = '' }
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
将不会是该类的实例,即使它与该类具有相同的字段。