可以使用装饰器试试 type Constructor = new (...args: any[]) => T; function AutoSuper(constructor: T) { return class extends constructor { constructor(...args: any[]) { super(...args); } }; } export class ClassA { constructor( public s1: number, public s2: number, public s3: number, ) { } } @AutoSuper export class ClassB extends ClassA { } 如果还有其他操作,可以试试 type Constructor = new (...args: any[]) => T; function AutoSuper(constructor: T) { return class extends constructor { constructor(...args: any[]) { super(...args); this.initData(...args); } }; } class ClassA { public s1: number; constructor( s1: number, s2: number, s3: number, ) { this.s1 = s1; } } @AutoSuper class ClassB extends ClassA { public temp: number = 0; initData(s1: number) { this.temp = s1; } prt() { console.log('this.s1', this.s1); console.log('this.temp', this.temp); } } const t = new ClassB(1, 2, 3); t.prt();