variable objetos number long listas lista array javascript typescript

javascript - objetos - typescript date



¿Cómo declarar un tipo como anulable en TypeScript? (4)

El tipo de unión es, en mi opinión, la mejor opción en este caso:

interface Employee{ id: number; name: string; salary: number | null; } // Both cases are valid let employe1: Employee = { id: 1, name: ''John'', salary: 100 }; let employe2: Employee = { id: 1, name: ''John'', salary: null };

Tengo una interfaz en TypeScript.

interface Employee{ id: number; name: string; salary: number; }

Me gustaría hacer ''salario'' como un campo con nulo (como lo podemos hacer en C #). ¿Es esto posible en TypeScript?


Solo agrega un signo de interrogación ? al campo opcional.

interface Employee{ id: number; name: string; salary?: number; }


Todos los campos en JavaScript (y en TypeScript) pueden tener el valor null o undefined .

Puede hacer que el campo sea opcional, que es diferente de anulables.

interface Employee1 { name: string; salary: number; } var a: Employee1 = { name: ''Bob'', salary: 40000 }; // OK var b: Employee1 = { name: ''Bob'' }; // Not OK, you must have ''salary'' var c: Employee1 = { name: ''Bob'', salary: undefined }; // OK var d: Employee1 = { name: null, salary: undefined }; // OK // OK class SomeEmployeeA implements Employee1 { public name = ''Bob''; public salary = 40000; } // Not OK: Must have ''salary'' class SomeEmployeeB implements Employee1 { public name: string; }

Comparar con:

interface Employee2 { name: string; salary?: number; } var a: Employee2 = { name: ''Bob'', salary: 40000 }; // OK var b: Employee2 = { name: ''Bob'' }; // OK var c: Employee2 = { name: ''Bob'', salary: undefined }; // OK var d: Employee2 = { name: null, salary: ''bob'' }; // Not OK, salary must be a number // OK, but doesn''t make too much sense class SomeEmployeeA implements Employee2 { public name = ''Bob''; }