جاوااسکریپت - بارگذاری بیش از حد عملگر انتساب در تایپاسکریپت
من در حال نوشتن مجموعهای از کلاسهای TypeScript هستم که از وراثت برای حفظ سلسلهمراتب «نوع» (به دلیل نداشتن عبارت بهتر) استفاده میکنند.
برای مثال فرض کنید من یک کلاس پایه دارم...
class Parent {
}
و سپس کلاسهای دیگر را از این مشتق میکنم...
class Child extends Parent {
}
تا اینجا همه چیز خوب است... اما بگذارید بگوییم، حالا میخواهم بتوانم چیزی را مستقیماً به کلاس فرزندم اختصاص دهم، به این صورت:
private xyz: Child = "Foo Bar";
در حال حاضر TypeScript یک خطای کامپایلر/نحو ایجاد میکند...
نمیتوان رشته را به Child تبدیل کرد
اگر من بتوانم رشتهها را به String اختصاص دهم (که به همان اندازه، فقط یک نمونه اولیه است، همانند کلاس Child من)، چگونه میتوانم عملگر تخصیص کلاس خود را برای قبول رشتهها بیشبارگذاری کنم؟
ویرایش: من این را امتحان کردم...
class Child extends Parent implements String {
}
...با این حال، اثر مورد نظر را ندارد.
با توجه به تجربهام در C#، حدس میزنم که دارم سعی میکنم معادل ... را به دست آورم
public static implicit operator Child(string value
{
return new Child(value);
}
پاسخ شماره ۱
در یک زبان مبتنی بر کلاس شما معمولاً پارامترها را در سازنده میپذیرید، مانند این:
class Parent {
}
class Child extends Parent {
constructor(private someProp: string) {
super();
}
}
var child = new Child("Foo Bar");
