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
probably I'm missing something simple. I created a class with the @jsonObject annotation like in the example:
import 'reflect-metadata';
import { jsonObject, jsonMember } from 'typedjson';
@jsonObject
class AClass {
@jsonMember
public prop: string;
}
The problem is at compiling:
error TS2564: Property 'prop' has no initializer and is not definitely assigned in the constructor.
7 public prop: string;
Well, the error makes sense for me but how should it work?
The text was updated successfully, but these errors were encountered:
Hey @staxx6, this is actually related to an option in typescript called "strictNullChecks", and is not specific to TypedJSON. There are a couple of ways to deal with it, depending on your use case really.
If you are expecting that this property may not be in an input you could make this property optional with ?, or provide a default value. Internally, TypedJSON first calls your constructor without any parameters, and then sets all the properties.
On the other hand, if you are sure that this value will always appear in an input, then you could put an assertion on the property with !. You can then also add required: true in the decorator options to tell TypedJSON to double check that in the runtime.
Unfortunately at this point, decorators cannot modify a property type, so we have to obey the typescript rules.
Hello,
probably I'm missing something simple. I created a class with the
@jsonObject
annotation like in the example:The problem is at compiling:
error TS2564: Property 'prop' has no initializer and is not definitely assigned in the constructor.
7 public prop: string;
Well, the error makes sense for me but how should it work?
The text was updated successfully, but these errors were encountered: