TypeScript-未检查内联函数的类型安全性
我刚开始打字,尝试的东西很少 其中函数要求number参数和bool作为返回值TypeScript-未检查内联函数的类型安全性,typescript,Typescript,我刚开始打字,尝试的东西很少 其中函数要求number参数和bool作为返回值 function where(items: number[], filter: (item: number) => bool) { for (var counter = 0; counter < items.length; counter++) { var item = items[counter]; if (filter(item)) {
function where(items: number[], filter: (item: number) => bool) {
for (var counter = 0; counter < items.length; counter++) {
var item = items[counter];
if (filter(item)) {
console.log(item);
}
}
}
var data = [1, 2, 3, 4];
案例2-返回类型不正确的内联函数不会生成编译时错误
where(data, function(item : number){
return item;
});
where(data, item => item);
案例3-即使是简写语法也不会生成编译时错误
where(data, function(item : number){
return item;
});
where(data, item => item);
这是TypeScript的bug还是预期行为?肯定是bug。显然,匿名函数没有进行类型检查。分配给变量/命名函数的函数为。您可以在此处打开错误报告: 我搜索了存储库,没有找到类似的bug报告 只是我在闲逛
除非指定变量或函数名,否则可能不会推断类型。这个赋值应该发生在我们调用一个函数的时候(当你给一个参数赋值的时候),但是类型推断并没有对那个位起作用 根据收到的评论,案例2和案例3都是bug
不是真正的答案,但如果指定内联函数的返回类型,则会生成错误:
where(数据,函数(项:编号):number{return item;})代码>。。。但如果您不这样做,则不会。这些示例中记录的bug是针对0.8.3版的