Skip to content

Commit a9e440d

Browse files
JeanMechedevversion
authored andcommitted
refactor(core): drop the Mutable utility type. (#58124)
The complexity of this type isn't necessary, `Writable` is well suited where it was used. PR Close #58124
1 parent da0e6b1 commit a9e440d

File tree

3 files changed

+8
-18
lines changed

3 files changed

+8
-18
lines changed

packages/core/src/interface/type.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,6 @@ export interface Type<T> extends Function {
3838
new (...args: any[]): T;
3939
}
4040

41-
export type Mutable<T extends {[x: string]: any}, K extends string> = {
42-
[P in K]: T[P];
43-
};
44-
4541
/**
4642
* Returns a writable type version of type.
4743
*

packages/core/src/render3/definition.ts

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
import {ChangeDetectionStrategy} from '../change_detection/constants';
1010
import {formatRuntimeError, RuntimeErrorCode} from '../errors';
11-
import {Mutable, Type} from '../interface/type';
11+
import {Type, Writable} from '../interface/type';
1212
import {NgModuleDef} from '../metadata/ng_module_def';
1313
import {SchemaMetadata} from '../metadata/schema';
1414
import {ViewEncapsulation} from '../metadata/view';
@@ -338,14 +338,14 @@ interface ComponentDefinition<T> extends Omit<DirectiveDefinition<T>, 'features'
338338
*/
339339
export function ɵɵdefineComponent<T>(
340340
componentDefinition: ComponentDefinition<T>,
341-
): Mutable<ComponentDef<any>, keyof ComponentDef<any>> {
341+
): ComponentDef<any> {
342342
return noSideEffects(() => {
343343
// Initialize ngDevMode. This must be the first statement in ɵɵdefineComponent.
344344
// See the `initNgDevMode` docstring for more information.
345345
(typeof ngDevMode === 'undefined' || ngDevMode) && initNgDevMode();
346346

347347
const baseDef = getNgDirectiveDef(componentDefinition as DirectiveDefinition<T>);
348-
const def: Mutable<ComponentDef<T>, keyof ComponentDef<T>> = {
348+
const def: Writable<ComponentDef<T>> = {
349349
...baseDef,
350350
decls: componentDefinition.decls,
351351
vars: componentDefinition.vars,
@@ -557,7 +557,7 @@ function parseAndConvertBindingsForDefinition<T>(
557557
*/
558558
export function ɵɵdefineDirective<T>(
559559
directiveDefinition: DirectiveDefinition<T>,
560-
): Mutable<DirectiveDef<any>, keyof DirectiveDef<any>> {
560+
): DirectiveDef<any> {
561561
return noSideEffects(() => {
562562
const def = getNgDirectiveDef(directiveDefinition);
563563
initFeatures(def);
@@ -648,9 +648,7 @@ export function getNgModuleDef<T>(type: any, throwNotFound?: boolean): NgModuleD
648648
return ngModuleDef;
649649
}
650650

651-
function getNgDirectiveDef<T>(
652-
directiveDefinition: DirectiveDefinition<T>,
653-
): Mutable<DirectiveDef<T>, keyof DirectiveDef<T>> {
651+
function getNgDirectiveDef<T>(directiveDefinition: DirectiveDefinition<T>): DirectiveDef<T> {
654652
const declaredInputs: Record<string, string> = {};
655653

656654
return {
@@ -679,11 +677,7 @@ function getNgDirectiveDef<T>(
679677
};
680678
}
681679

682-
function initFeatures<T>(
683-
definition:
684-
| Mutable<DirectiveDef<T>, keyof DirectiveDef<T>>
685-
| Mutable<ComponentDef<T>, keyof ComponentDef<T>>,
686-
): void {
680+
function initFeatures<T>(definition: DirectiveDef<T> | ComponentDef<T>): void {
687681
definition.features?.forEach((fn) => fn(definition));
688682
}
689683

packages/core/src/render3/features/input_transforms_feature.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
* found in the LICENSE file at https://angular.dev/license
77
*/
88

9-
import {Mutable} from '../../interface/type';
9+
import {Writable} from '../../interface/type';
1010
import {DirectiveDef, InputTransformFunction} from '../interfaces/definition';
1111

1212
/**
@@ -32,5 +32,5 @@ export function ɵɵInputTransformsFeature<T>(definition: DirectiveDef<T>): void
3232
}
3333
}
3434

35-
(definition as Mutable<DirectiveDef<T>, 'inputTransforms'>).inputTransforms = inputTransforms;
35+
(definition as Writable<DirectiveDef<T>>).inputTransforms = inputTransforms;
3636
}

0 commit comments

Comments
 (0)