هل هناك طريقة لإضافة أساليب سريعة إلى فصل دراسي باستخدام الآلة الكاتبة؟

StackOverflow https://stackoverflow.com//questions/12698893

  •  12-12-2019
  •  | 
  •  

سؤال

أحاول إنشاء نوع من أساليب mixin التي تضيف طرقًا إلى النموذج الأولي/الفئة بسرعة ولكن تظهر لي أخطاء مثل

لا يوجد مكانة "الاسم الترحيب" على قيمة النوع "تحية" أي

و

لا يوجد مكانة "الاسم الترحيب" على قيمة النوع "تحية" أي

عندما أقوم بتشغيل الكود التالي.

class Greeter {
    greeting: string;
    constructor (message: string) {
        this.greeting = message;
    }
    greet() {
        return "Hello, " + this.greeting;
    }
}

Greeter.prototype.greetName = function(name){
        return this.greet() + ' ' + name;
}

var greeter = new Greeter('Mr');

window.alert(greeter.greetName('Name'));

إنه في الواقع يجمع إلى js صالح ويعمل كما هو متوقع.هل هناك طريقة للقيام بذلك دون تحذيرات/أخطاء المترجم؟

هل كانت مفيدة؟

المحلول

هذا الحل لديه فائدة من إعطائك اكتب التحقق عند إضافة طريقة ديناميكيا:

giveacodicetagpre.

نصائح أخرى

سيحتاجون إلى مفهوم الطبقات الجزئية لهذا العمل حاليا غير معتمد.سأخبرك أن ما عثر عليه يعمل بشكل أفضل لهذه الأنواع من السيناريوهات هو استخدام الواجهات بدلا من ذلك (لقد كنت برمجة في Custoscript منذ حوالي 6 أشهر الآن - أنا في MS ولكن ليس على فريق Cydingcript)

واجهات قابلة للتوسعة بعد الحقيقة ببساطة عن طريق التوقعات ببساطة الطرق التي تضيفها إلى الواجهة.كمثال على ذلك، إذا قمت بتثبيت مسافة JQuery، فسوف ترغب في إعادة تحديد واجهة iJQuery & iJqueryutil لتضمين طرق الإضافات الإضافية.من هذه النقطة إلى الأمام، يمكنك استدعاء طرق الإضافات من خلال $ .Plugin () ومضابط سيكون سعيدا.

هناك طريقة أخرى للقيام بذلك.

giveacodicetagpre.

يعمل نفسه ويستخدم وظيفة فهرس العقارات في JavaScript و Lyscipcript لا يشتكي.

مماثلة ل Fenton مثال، ولكن بدون الأشياء Gnarly:

giveacodicetagpre.

هذه هي الطريقة RxJS يفعل ذلك

import {Observable} from "./observable"; // which is Greeter in your case 


declare module "./observable" {
    interface Observable<T> {
        map<U>(f: (x: T) => U): Observable<U>;
    }
}

Observable.prototype.map = function (f) {

}

وهذا ما يسمى زيادة الوحدة النمطية.

بعد الاضطرار إلى تنفيذ الأساليب والخصائص الديناميكية على الفصول الدراسية، كان هذا هو الحل الذي كنت قادرا على الذهاب إليه لمنع محمول المحول الكهربائي من الشكوى:

giveacodicetagpre.

أساسا، استخدم طريقة قوس من / a>.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top