You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This means that if a property doesn't exist, or is removed, in Protocols, then it will not be a compile error. I think some users (including myself) would prefer to know about excess/removed properties if possible.
I believe that this could be changed by making the JSON Schema include additionalProperties: false on most definitions. It seems the default for QuickType is to generate [property: string]: any; if it is not set to false.
I had the same issue, I didn't manage to prevent the interface allowing any property however I did create a wrapper interface to achieve this:
type MakeStrict<T> = {
[K in keyof T as string extends K
? never
: number extends K
? never
: K]: T[K];
};
export interface MyEventProperties {
email: string
[property: string]: any;
}
type StrictMyEventProperties = MakeStrict<MyEventProperties>
Currently the generated types for TypeScript look like:
This means that if a property doesn't exist, or is removed, in Protocols, then it will not be a compile error. I think some users (including myself) would prefer to know about excess/removed properties if possible.
I believe that this could be changed by making the JSON Schema include
additionalProperties: false
on most definitions. It seems the default for QuickType is to generate[property: string]: any;
if it is not set tofalse
.I tried to use a "Common JSON Schema" set to:
It did not work though.
The text was updated successfully, but these errors were encountered: