I have an issue with Typescript type checking when I'm using a function. Let say I have a Type IBaseField and I have a variable of Type Array<IBaseField>. When I want to assign a value to this variable I will check for null and undefined and I will assign an empty array or a new value based on the function result. But typescript shows an error that Type IBaseField[] | undefined is not assignable to type IBaseField[] While I have checked it in the function. Here is the code I have tried:
public constructor(formId:ID, autoFillFields?: Array<IBaseField>) {
this._formId = formId
this._autoFillFields = isNullOrUndefined(autoFillFields) ? [] : autoFillFields
}
and here is my isNullOrUndefined function:
export function isNullOrUndefined(obj: any) {
return obj === null || obj === undefined
}
and the error shown by typescript:
Type 'IBaseField[] | undefined' is not assignable to type 'IBaseField[]'. Type 'undefined' is not assignable to type 'IBaseField[]'.ts(2322)