ไทป์สคริปต์: การใช้อินเทอร์เฟซด้วยฟังก์ชันสแตติก/ไม่มีชื่อ
ฉันจำเป็นต้องนำไปใช้งานอินเทอร์เฟซ Typescript (แบบง่าย) ต่อไปนี้ของไฟล์ d.ts:
interface SomeLibrary {
someProperty: SomePropertyClass;
someMethod();
(someParam: string): SomeClass; // don't know hot to implement this
}
ฉันจะทำการใช้อินเทอร์เฟซนี้ในคลาสของตัวเองได้อย่างไร? โดยเฉพาะอย่างยิ่งเมทอดที่ไม่มีชื่อเป็นปัญหา เมทอดเหล่านั้นถูกเรียกใช้อย่างไร?
คำตอบ #1
อินเทอร์เฟซที่คุณแสดงไม่สามารถถูกเติมเต็มโดยคลาสใน TypeScript ได้
อินเทอร์เฟซแบบนี้มักถูกสร้างขึ้นเพื่ออธิบายไลบรารีที่ใช้รูปแบบที่แตกต่างกัน
ตัวอย่างหนึ่งของวิธีที่คุณสามารถตอบสนองต่ออินเทอร์เฟซจะแสดงด้านล่าง:
var example: SomeLibrary = <any> function(someParam: string) {
console.log('function called');
return new SomeClass();
}
example.someProperty = new SomePropertyClass();
example.someMethod = function () { console.log('method called'); };
var x = example('x');
var y = example.someProperty;
var z = example.someMethod();
