我想创建一个像这样的函数:
render() {
const results = this.props.data;
if (results.lenght) { // I'm trying to check for storage length, but this does not work
return (
results.map((item, index) => {
<div key={index}>
<h1>
{item.dstOffset}
</h1>
<h1>
{item.rawOffset}
</h1>
<h1>
{item.timeZoneId}
</h1>
</div>} )
)
}
else {
return (
<div>loading</div>
)
}
}
}
const mapStateToProps = state => ({ data: state.data });
并希望TypeScript理解这是有效的:
hello({ x: "hello", y: "world" })
但这不是:
const greeting = hello({ x: "hello", y: "world" })
greeting.x
greeting.y
我很确定可以在网络上的某个地方回答此问题,但是找不到合适的关键字来进行正确的研究,这就是我在这里的原因。
答案 0 :(得分:2)
您可以使用泛型来做到这一点,告诉TypeScript它返回的内容与接收到的内容相同:
function hello<T>(obj: T): T {
// ^^^----^^^-^^^------------------------------------ ***
return /*...an object with the same shape as `obj`...*/;
}
使用方法完全符合您的问题。