TypeScript中如何为类赋予不同类型别名并兼具类型与构造函数特性
TypeScript 类别名兼具构造函数与类型功能的实现
要让XExport同时作为可实例化的构造函数和类型使用,你可以利用TypeScript对同名类型与值的合并支持,分别导出类型别名和构造函数实例:
class XReal { foo() { return 5 } } declare class XFake { bar(): number } // 导出类型:将XFake映射为XExport export type XExport = XFake; // 导出构造函数:将XReal断言为XFake的构造函数类型 export const XExport = XReal as unknown as typeof XFake; // 两种用法均生效 declare const c: XExport; // 作为类型使用 const ci = new XExport(); // 作为构造函数实例化
核心要点
- TypeScript允许同一导出名下同时存在类型和值,外部使用时无需区分,直接用
XExport即可 - 用
unknown作为中间断言比any更严谨,避免不必要的类型放宽 - 运行时实际执行的是
XReal的逻辑,但类型校验完全遵循XFake的定义
内容的提问来源于stack exchange,提问作者Jason Siefken
相关产品推荐
相关产品推荐

