TypeScript - איך אפשר להגדיר סוג של רכיב ב-Angular?
איך אני יכול להגדיר את סוג ה-Component בפונקציה דמיונית?
@Component({
templateUrl: 'a'
})
export class MyApp {
}
function dummy(component: any) {
....
}
dummay(MyApp);
תשובה #1
יש כמה פריטים שונים בשאלה שלך שיכולים להזדקק להבהרה.
בדוגמה שלך export class MyApp {...} יוצרת מחלקה מסוג MyApp.
בדרך כלל תעביר מופע של מחלקה לפונקציה. אם זה מה שאתה מנסה לעשות, אז זה ייראה כך:
function dummy(component: MyApp) {
....
}
dummay(new MyApp());
אם אתה באמת מנסה להעביר סוג כיתה לפונקציה, אז תרצה לעשות את הדברים הבאים:
import {
Type
} from '@angular/core';
function dummy(component: Type<any>) {
....
}
dummay(MyApp);
דרך נוספת בה תוכל להפוך את זה ליותר עוצמתי היא אם תגבילו את הרכיבים שיכולים להיות מועברים לפונקציה רק לאלו שמממשים ממשק נתון. דוגמה לכך תהיה כדלקמן:
import {
Type
} from '@angular/core';
export interface IFoo {
id: number;
getStuff: () => string;
}
@Component({
templateUrl: 'a'
})
export class MyApp implements IFoo {
}
function dummy(component: Type<IFoo>) {
const stuff = component.getStuff();
....
}
dummay(MyApp);
