Javascript 参数';i';隐式具有';任何';类型。TS(7006)
我对JavaScript和TypeScript还是相当陌生的。我正在尝试编写一个基本的过滤器,根据restaurantFilt函数删除餐馆(从./restaurants)。我不确定为什么我的'I'变量会在VSCode上收到此错误消息,有人能解释一下它的含义/如何修复它吗 谢谢大家!Javascript 参数';i';隐式具有';任何';类型。TS(7006),javascript,typescript,Javascript,Typescript,我对JavaScript和TypeScript还是相当陌生的。我正在尝试编写一个基本的过滤器,根据restaurantFilt函数删除餐馆(从./restaurants)。我不确定为什么我的'I'变量会在VSCode上收到此错误消息,有人能解释一下它的含义/如何修复它吗 谢谢大家! //Write application that we put in time, distance, price and delivery time to recommend restaurant import r
//Write application that we put in time, distance, price and delivery time to recommend restaurant
import restaurants from './restaurants'; //imported the restaurants from file.
let currentHour = 15;
let willingToWait = 40; //minutes
let price = '$';
let distance = 4; //miles
//Write function that will be used inside restaurant.filter
let priceBracket = price.length;
let restaurantFilt = (i) => {
if (distance > Number(i.distance)) { //if distance user inputs is greater than i's distance return false.
return false;
}
if (i.waitTime > willingToWait) { //User Max wait time > Restaurant Max => remove item
return false;
}
if (priceBracket != i.priceBracket) { //if users price bracket is not equal to i's price bracket, remove item
return false;
}
if (currentHour < i.openHour || currentHour > i.closeHour) {
return false;
}
else {
return true; //returns a value which equals true
}
}
let postRestFilt = restaurants.filter(restaurantFilt);
console.log(postRestFilt);
//编写应用程序,我们输入时间、距离、价格和交货时间来推荐餐厅
从“./餐厅”导入餐厅//从文件中导入餐厅。
设currentHour=15;
让willingToWait=40//会议记录
价格=“$”;
设距离=4//英里
//编写将在restaurant.filter中使用的函数
让priceBracket=price.length;
让restaurantFilt=(i)=>{
if(distance>Number(i.distance)){//如果用户输入的距离大于i的距离,则返回false。
返回false;
}
如果(i.waitTime>willingToWait){//User Max wait time>Restaurant Max=>remove item
返回false;
}
如果(priceBracket!=i.priceBracket){//如果用户的价格括号不等于i的价格括号,则删除该项
返回false;
}
如果(当前小时i.closeHour){
返回false;
}
否则{
return true;//返回一个等于true的值
}
}
让postRestFilt=restaurants.filter(restaurantFilt);
console.log(postRestFilt);
这是正在为餐厅导入的文件
export default [
{
name: 'Silver Rice Sushi You need to define the type that i
is in this line:
let restaurantFilt = (i) => {
导出默认值[
{
名称:'Silver Rice Sushi您需要定义i
在此行中的类型:
let restaurantFilt = (i: Restaurant) => {
这将是任何类型的餐厅
(从餐厅
文件导出),例如:
您的代码片段没有为我们提供足够的信息来说明确切的类型应该是什么,但这是缺少的
编辑:
根据您的编辑,您可以做一些事情
首先,您隐式地键入所有内容,这通常不是您编写typescript的方式。它在很多时候都有效(例如,让currentHour=15
起作用,因为它知道15
是数字),类似地,它也有效:
导出默认值[
{
名称:'Silver Rice Sushi您需要定义i
在此行中的类型:
let restaurantFilt = (i: Restaurant) => {
这将是任何类型的餐厅
(从餐厅
文件导出),例如:
您的代码片段没有为我们提供足够的信息来说明确切的类型应该是什么,但这是缺少的
编辑:
根据您的编辑,您可以做一些事情
首先,您隐式地键入所有内容,这通常不是您编写typescript的方式。它在很多时候都有效(例如,让currentHour=15
起作用,因为它知道15
是数字),类似地,它也有效:
导出默认值[
{
太长了,读不下去了。Silver Rice Sushi:你能不能提到一个事实,你可以禁用TSCONFIG中的NoMyTyRung?嘿,汤姆,谢谢你的回答!我添加了用于导入的文件。我相信这是一个保存项目的数组。我如何指定它?@ JuangViReReR检查更新的答案。TL;DR是你应该定义的F类型。或者使用餐厅
数组,然后在处理这些对象的任何地方使用该类型扫描您是否提到可以在tsconfig中禁用noImplicitAny?嘿,Tom,谢谢您的回答!我添加了用于导入的文件。我相信这将是一个包含项的数组?我如何为我指定该数组太长了,读不下去了。TL;DR,你应该为代码<餐馆> <代码>数组定义一个类型,然后在你处理这些对象的时候使用这个类型。这回答你的问题吗?这能回答你的问题吗?