作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经阅读了有关此问题的几个问题和答案,但无法解决。
我正在使用 Ionic2,并且有一种方法可以从 Firebase 数据库 v3 中检索数据。
我不明白为什么我在执行 ionic serve
时会在控制台中出现以下错误:
Error TS2345: Argument of type '(snap: DataSnapshot) => void' is not assignable to parameter of type '(a: DataSnapshot) => boolean'.
Type 'void' is not assignable to type 'boolean'.
constructor(private http: Http) {
firebase.database().ref('users').orderByChild("id").on("value", function(snapshot){
let items = [];
snapshot.forEach(snap => {
items.push({
uid: snap.val().uid,
username: snap.val().username,
});
});
});
}
}
最佳答案
forEach
DataSnapshot
中的方法有这个签名:
forEach(action: (a: firebase.database.DataSnapshot) => boolean): boolean;
action
可以退货
true
短路枚举并尽早返回。如果返回假值,则枚举继续正常进行。 (这是在
documentation 中提到的。)
false
(继续枚举子快照):
database()
.ref("users")
.orderByChild("id")
.on("value", (snapshot) => {
let items = [];
snapshot.forEach((snap) => {
items.push({
uid: snap.val().uid,
username: snap.val().username
});
return false;
});
});
关于ionic-framework - '(snap: DataSnapshot) => void' 类型的参数不能分配给 '(a: DataSnapshot) => boolean' 类型的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39845758/
我是一名优秀的程序员,十分优秀!