html - نمیتوان Enum را در خروجی کتابخانه Angular حل کرد
استفاده از نوع Enum در کتابخانه Angular باعث ایجاد خطا به صورت Can't resolve the enum هنگام وارد کردن در برنامههای دیگر میشود.
export enum Appearance {
Basic = 0,
Raised = 1,
Stroked = 2,
Flat = 3,
Icon = 4,
FAB = 5,
MiniFAB = 6,
Link = 7
}
بعد از جستجو در گوگل فهمیدم که باید Enum را به صورت const بسازم. export const enum Appearance. اما نمیتوانم enum را const بسازم چون در حال استفاده از Enum داخل دستور switch در HTML به شکل زیر هستم
<button mat-raised-button *ngSwitchCase="buttonTypes.Raised">{{field.componentProperty.label}}
</button>
<button mat-raised-button *ngSwitchCase="buttonTypes.Stroked">{{field.componentProperty.label}}
</button>
<button mat-raised-button *ngSwitchCase="buttonTypes.Flat">{{field.componentProperty.label}}
</button>
export class ButtonComponent implements OnInit {
buttonTypes = Appearance ==============> declaring here
constructor() { }
ngOnInit(): void {
}
}
Public-api.ts
export * from './lib/view-models/component-type.enum'
ERROR in ./src/app/user-module/users/car/car-search-filter/car-search-filter.component.ts
Module not found: Error: Can't resolve '@falcon-ng/core/lib/view-models/component-type.enum' in '/Users/macbook/Projects/RentalProjects/RentalUI/src/app/user-module/users/car/car-search-filter'
آیا راه حل بهتری وجود دارد؟
پاسخ شماره ۱
شما میتوانید از یکی از دو رویکرد زیر استفاده کنید:
یا سعی کنید از گزینه کامپایلر preserveConstEnums استفاده کنید همانطور که در اینجا ذکر شده است - https://stackoverflow.com/a/45942840/5350404
یا مستقیماً از مقدار enum به این صورت استفاده کنید:
<button mat-raised-button *ngSwitchCase="RAISED">
{{field.componentProperty.label}}
</button>
<button mat-raised-button *ngSwitchCase="STROKED">
{{field.componentProperty.label}}
</button>
<button mat-raised-button *ngSwitchCase="FLAT">
{{field.componentProperty.label}}
</button>
export class ButtonComponent {
readonly RAISED = Appearance.Raised;
readonly STROKED = Appearance.Stroked;
readonly FLAT = Appearance.Flat;
}
