Skip to content

Commit 57134dd

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 410ed69 commit 57134dd

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,
@@ -558,7 +558,7 @@ function parseAndConvertBindingsForDefinition<T>(
558558
*/
559559
export function ɵɵdefineDirective<T>(
560560
directiveDefinition: DirectiveDefinition<T>,
561-
): Mutable<DirectiveDef<any>, keyof DirectiveDef<any>> {
561+
): DirectiveDef<any> {
562562
return noSideEffects(() => {
563563
const def = getNgDirectiveDef(directiveDefinition);
564564
initFeatures(def);
@@ -649,9 +649,7 @@ export function getNgModuleDef<T>(type: any, throwNotFound?: boolean): NgModuleD
649649
return ngModuleDef;
650650
}
651651

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

657655
return {
@@ -680,11 +678,7 @@ function getNgDirectiveDef<T>(
680678
};
681679
}
682680

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

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)