TypeScript 类扩展:类似 Swift extension 的功能
"TypeScript 类扩展:类似 Swift extension 的功能"\n\n是的,TypeScript 中也有类似 Swift 中 extension 的功能。在 TypeScript 中,我们可以使用接口扩展类的功能,并且还可以使用命名空间和模块来扩展类。下面是一些示例:\n\n1. 使用接口来扩展类的功能:\n\ntypescript\nclass MyClass {\n name: string;\n constructor(name: string) {\n this.name = name;\n }\n}\n\ninterface Printable {\n print(): void;\n}\n\nconst printableClass: Printable & typeof MyClass = class extends MyClass implements Printable {\n print() {\n console.log(`Printing ${this.name}`);\n }\n};\n\nconst instance = new printableClass("Hello");\ninstance.print(); // Output: Printing Hello\n\n\n2. 使用命名空间来扩展类的功能:\n\ntypescript\nclass MyClass {\n name: string;\n constructor(name: string) {\n this.name = name;\n }\n}\n\nnamespace MyClassExtensions {\n export function print(this: MyClass) {\n console.log(`Printing ${this.name}`);\n }\n}\n\nconst instance = new MyClass("Hello");\nMyClassExtensions.print.call(instance); // Output: Printing Hello\n\n\n3. 使用模块来扩展类的功能:\n\ntypescript\n// printer.ts\nexport function print(this: MyClass) {\n console.log(`Printing ${this.name}`);\n}\n\n// main.ts\nimport { print } from "./printer";\n\nclass MyClass {\n name: string;\n constructor(name: string) {\n this.name = name;\n }\n}\n\nMyClass.prototype.print = print;\n\nconst instance = new MyClass("Hello");\ninstance.print(); // Output: Printing Hello\n\n\n这些都是在 TypeScript 中扩展类功能的常见方法,类似于 Swift 中的 extension。
原文地址: https://www.cveoy.top/t/topic/pZQn 著作权归作者所有。请勿转载和采集!