Existe uma diferença entre uma variável com um tipo ? ou undefined no Typescript
Em TypeScript existem dois métodos diferentes de dizer que uma propriedade pode ser undefined ao criar uma interface:
Método 1:
interface m1 {
prop?: randomType; // type is (randomType | undefined)
}
Método 2:
interface m2 {
prop: randomType|undefined; // type is (randomType | undefined)
}
A única diferença imediatamente aparente entre esses dois que eu percebi é que, ao passar o mouse sobre prop, o IntelliSense mostrará undefined em azul para o Método 1 e em verde para o Método 2.
Existem outras diferenças entre estes?
Resposta #1
Para simplificar: com ? o campo se torna opcional:
type randomType = {}
interface M1 {
prop?: randomType; // type is (randomType | undefined)
}
interface M2 {
prop: randomType | undefined; // type is (randomType | undefined)
}
const m1: M1 = {} // OK
const m2: M2 = {} // NOK
const m22: M2 = { prop: undefined } // OK
Parque infantil
