Я получаю сообщение об ошибке следовать в моем IDE говоря Property id does not exist on type string typeScript
для этой строки кода:Property ID не существует на строкового типа
if(customer.id === id) {//doesn't like customer.id
return customer;
}
полный код:
let customer:any [];
function Customers(): string[] {
let id = 0;
createCustomer("Drew",id++,22,"Glassboro");
createCustomer("Mike",id++,40,"Rineyville");
createCustomer("Justin",id++,19,"Jonesboro");
createCustomer("Alex",id++,15,"Paulsboro");
createCustomer("Phil",id++,32,"Glassboro");
return customer;
}
function createCustomer(name:string,id:number,age:number,city:string){
customer.push(name,id,age,city);
}
const allCustomers = Customers();
function getCustomerInformation(id:number): string {
for (let customer of allCustomers) {
if(customer.id === id){
return customer;
}
}
return "";
}
Это было мое предположение, так как Я использовал any
для let customer:any [];
Я мог бы поместить туда разные переменные.
----------------- Спасибо за некоторую помощь это мой новый раствор --------
interface ICustomer{
id: number;
name: string;
age: number
city: string
}
let customers: Array<ICustomer>;
function generateCustomers(): void {
let id: number = 0;
createCustomer("Drew", id++, 22, "Glassboro");
createCustomer("Mike", id++, 40, "Rineyville");
createCustomer("Justin", id++, 19, "Jonesboro");
createCustomer("Alex", id++, 15, "Paulsboro");
createCustomer("Phil", id++, 32, "Glassboro");
}
function getAllCustomers(): ICustomer[]{
generateCustomers();
return customers;
}
function createCustomer(name:string,id:number,age:number,city:string): void {
let newCustomer:ICustomer = {id:id,name:name,age:age,city:city};
customers.push(newCustomer);
}
const allCustomers = getAllCustomers;
function getCustomerInformation(id:number): ICustomer {
for (let customer of allCustomers()) {
if(customer.id === id){
return customer;
}
}
return null;
}
console.log(getCustomerInformation(1));
Ваше предположение было почти правильным. Функция 'customers' возвращает массив строк ... –
Вероятно, вы хотите' customer.push ({name, id, age, city}); 'Ваше наименование очень и очень запутанно. И вы возвращаете клиента, который имеет тип any [], из функции, тип возврата которой является строкой []. Это не имеет большого смысла. –