#javascript #angular #components
#javascript #угловой #Компоненты
Вопрос:
У меня есть следующий интерфейс, и я могу передать его значения параметров базовому компоненту. Однако, хотя я мог бы передавать строковые значения без каких-либо проблем, я не могу передавать логические значения и сталкиваюсь с «Идентификатор ‘isDisabled’ не определен. Ошибка ‘CustomButton’ не содержит такого элемента».
export interface CustomButton {
name: string;
operation: string;
tooltip: string;
isDisabled?: boolean;
}
С другой стороны, я устанавливаю значение по умолчанию isDisabled
в компоненте, из которого я вызываю базовый компонент:
buttons: CustomButton[];
isEmployeeDisabled = false; // set the value while defining variable
this.buttons = [
{
name: 'edit',
tooltip: 'Edit Employee',
operation: 'Delete',
isDisabled: this.isEmployeeDisabled
// isDisabled: true // if I use like this, it works fine but still gives that error
}
];
Я не смог найти, почему isDisabled не является известным свойством. Как я могу решить эту проблему?
Комментарии:
1. this.buttons: CustomButton[] = […], попробуйте это и посмотрите, выдает ли ide вам ошибки или предупреждения
2. Спасибо, Джек, но я уже использую
buttons: CustomButton[];
определение, как я добавил к вопросу. Итак, я не могу использовать его, как вы упомянули, поскольку он уже определен таким образом. Есть еще идеи?3. Проблема, по-видимому, связана с логическим типом, потому что нет проблем с другими типами при использовании их таким же образом.
4. Вы правы, мой плохой. Я воссоздал ваш сценарий и не получаю ошибок, какую версию ionic вы используете?
5. Что вы имеете в виду под ionic? Я использую Angular 10
Ответ №1:
Попытка с помощью Stackblitz выдает мне эту ошибку:
Type '{name: string; tooltip: string; operation: string; isDisabled: boolean; } 'is not assignable to type' CustomButton '.
Object literal may only specify known properties, and 'operation' does not exist in type 'CustomButton'.
Проблема в том, что operation
свойство в interface
отсутствует.
https://stackblitz.com/edit/angular-ngclass-off-props?file=src/app/app.component.ts
Комментарии:
1. Спасибо за ответ, но я удалил некоторые строки для ясности, и на самом деле свойство operation находится в интерфейсе, а не отсутствует. Есть идеи, связанные с проблемой?