example Final Final export function Final ( ... properties ) { return function < T extends { new ( ... props ) : any ; } > ( target ) : T { return class extends target { constructor ( ... props ) { super ( ... props ) ; properties . forEach ( property => { Object . defineProperty ( this , property , { writable : false , configurable : false , enumerable : true , value : super [ property ] ?? this [ property ] } ) ; } ) ; } } ; } ; }