typescript - 是否可以指定一个类在声明后实现一个抽象类?
问题描述
我想声明一个抽象类和一个类而不声明该类在同一个文件中实现了抽象类。
abstract class ExampleAbstractClass {
abstract exampleMethod(): string;
}
class ExampleClass {
exampleMethod(): string { return 'test'; }
}
// I would like to specify that the class does implement the abstract class in another file
ExampleClass implements ExampleAbstractClass
这种用例在其他语言中是可能的,比如带有协议的 Swift。
解决方案
对的,这是可能的:
示例类.ts
export abstract class ExampleAbstractClass {
abstract exampleMethod(): string;
}
export class ExampleClass {
exampleMethod(): string { return 'test'; }
}
export interface ExampleClass extends ExampleAbstractClass {} // NOTICE: usage of interface!
示例类.test.ts
import { ExampleClass, ExampleAbstractClass } from "./example-class";
const a: ExampleAbstractClass = new ExampleClass(); // works!
console.log(a.exampleMethod());
由于TypeScript 目前不允许合并类声明,因此您必须同时interface
使用。您还可以使用 扩展在单独文件中定义和实现的模块。class
ExampleClass
declare module "<path to implementation source file>" {}
推荐阅读
- python - For循环根据csv python中的列名创建标题
- python - 如何使用 exec() 在字符串函数中使用内置模块
- javascript - undefined 不是对象(评估 '_this.el')
- twitter-bootstrap - Bootstrap 模态文本右对齐
- python - 如何使用if条件更改python中的变量值
- python - 在 VS 代码中调试 Python 脚本时出现无法识别的参数错误
- json - 如何在 Python 2.7 中有效地解析具有多个键的 JSON 数据?
- selenium - 在 Selenium WebDriver 中获取 java.lang.NullPointerException
- java - 未安装提供程序“gs”
- powershell - 希望通过 csv 文件使用 PowerShell 进行查找和替换