export type A = {
B: B;
C: C;
};
export type B = {
A: A;
};
export type C = {
aCollection: A[];
};
export type D = {
A: A;
B: B;
};
In this situation, Type B in Type D should return object A once, not an empty object.
But now, in the process of creating type D, Type A is created first, and after calling Type B inside Type A, Type B inside Type D is recognized as the second call.
This appears to be a side effect, not the originally intended recursion prevention effect, in my opinion.
So I modified the recursive call prevention logic by converting the set object to an array with immutability.
In this situation, Type B in Type D should return object A once, not an empty object.
But now, in the process of creating type D, Type A is created first, and after calling Type B inside Type A, Type B inside Type D is recognized as the second call.
This appears to be a side effect, not the originally intended recursion prevention effect, in my opinion.
So I modified the recursive call prevention logic by converting the set object to an array with immutability.
This PR is a followup of #77