我对简单的打字稿代码有疑问。我正在尝试将对象映射到字符串,结果是意外的,该方法总是返回'desc'。我正在尝试调试代码,但奇怪的是,未定义id变量。当我尝试在控制台上登录“ state [0] .id”时,将打印正确的值。谢谢您的帮助!
interface Pageable {
id: string,
desc: boolean
}
private mapSortedToSortingString(state: Pageable[]): string {
if (state.length > 0) {
let id: string = state[0].id;
let sort = id + ',' + (state[0].desc) ? 'desc' : 'asc';
console.log(sort);
}
return (state.length > 0) ? (state[0].id + ',' + (state[0].desc) ? 'desc' : 'asc') : "";
}
答案 0 :(得分:0)
(仅部分答案,但需要设置格式。)
由于运算符的优先级,您的三元仍将是不正确的。
将三元组周围的部分设为括号,例如第一个:
const sort = id + ',' + ((state[0].desc) ? 'desc' : 'asc');
或者更清晰地将其作为中间变量进行划分。
无关,但由于尚未重新分配,请使用const
。
关于为什么它是undefined
,我们看不到您的数据,所以我们不知道。是不是异步(在这种情况下,console.log
可能会产生误导)?