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
If I define a property using a Literal with a default value, it shows as optional in typescript. This is similar to #28 but, I think it should be treated differently because the value must be set, even by a client (the property is used as a discriminator in a union).
from typing import Literal
from pydantic import BaseModel
class MyModel(BaseModel):
my_bool_property: Literal[False] = False
renders into
/* tslint:disable */
/* eslint-disable */
/**
/* This file was automatically generated from pydantic models by running pydantic2ts.
/* Do not modify it by hand - just update the pydantic models and then re-run the script
*/
export interface MyModel {
my_bool_property?: false;
}
The text was updated successfully, but these errors were encountered:
I could be misunderstanding your use case here, but I don't actually think this should be treated differently from #28.
If MyModel is being sent from TypeScript to Python (e.g. as a request), the presence of the default on the Pydantic model means that even if TS doesn't include my_bool_property, it will still be populated as False on the Python side when processing the request data (converting the JSON into a MyModel instance). So in that case, it should be safe to mark my_bool_property as optional on the TS side.
And if it's being used as a discriminator on the TS side and should be required, that sounds like something pydantic2ts wouldn't have direct knowledge of (but a flag to avoid defaulted-fields becoming optional would solve the issue).
But yeah maybe I'm missing something in what you were looking for here.
If I define a property using a Literal with a default value, it shows as optional in typescript. This is similar to #28 but, I think it should be treated differently because the value must be set, even by a client (the property is used as a discriminator in a union).
renders into
The text was updated successfully, but these errors were encountered: