ค้นหาเว็บไซต์

javascript - การตรวจสอบประเภทใน TypeScript


มีวิธีใดบ้างที่จะได้ ชื่อ ของชนิดของผู้เรียกฟังก์ชันใน TypeScript หรือไม่? อีกทางหนึ่งมีวิธีใดบ้างที่จะได้ ชื่อ ของชนิดของวัตถุปัจจุบัน?

อะไรประมาณนี้:

export class SomeData {
    sampleFunc() {
        console.log(this.getTypeName());
    }

    //or
    anotherFunc(caller: any) {
        console.log(caller.getTypeName());
    }
}

getTypeName คือฟังก์ชันที่ต้องการที่นี่ ชนิดใน TypeScript จะหายไปหลังจากคอมไพล์ มี typeof (เพื่อเอาอ็อบเจ็กต์นิยามคลาสเอง) แต่ฉันไม่เห็นวิธีที่จะเอา ชื่อ

การใช้งานหนึ่งสำหรับสิ่งนี้อาจเป็นการบันทึกที่สะอาดขึ้นด้วย console.group(name) และ console.groupEnd() - อย่างน้อยในช่วงเวลาการพัฒนา

แก้ไข:

ตามที่ฉันค้นหามา มี Polyfill สำหรับข้อเสนอ Metadata Reflection API "เพื่อเพิ่ม Decorators ให้กับ ES7 พร้อมกับต้นแบบสำหรับ ES7 Reflection API สำหรับ Metadata ของ Decorator" ซึ่งสามารถใช้ร่วมกับ decorators ใน TypeScript ได้

คำตอบ #1

สำหรับวัตถุประสงค์ของฉัน ฉันใช้:

caller.constructor.name

สำหรับข้อมูลเพิ่มเติมคุณสามารถอ่านโพสต์ที่ยอดเยี่ยมนี้ได้: วิธีในการรับคลาสของอ็อบเจ็กต์ JavaScript?