Pesquisa de site

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

Artigos relacionados