Labeling a property with ?
means that it can be declared or not declared on the object. Giving it a possible type undefined
says that even if it is declared, it may not matter.
id?: number
, , .
id: number | undefined
, , , .
id?: number | undefined
, , , .
obj = {id: undefined}
, id
, , obj = {}
, id
. typeof obj.id === 'undefined'
true, id
.
, Typescript, , . , , .
, , . , ?
undefined
, , , , . : typeof obj.id === 'number'
, (0 == false
). (for i in obj
) (if('id' in obj)
) .