@yasmine
В TypeScript опциональными могут быть следующие типы данных:
1 2 |
let x: string | undefined; let y?: number = undefined; |
1 2 |
let x: string | null; let y?: number = null; |
1 2 |
let x: string | undefined | null; let y: number | null | undefined = 42; |
1 2 3 4 |
function foo(x?: string) { /* ... */ } interface MyInterface { prop?: number; } |
Важно отметить, что переменные, объявленные без указания типа, могут иметь значение undefined
или null
, если они не были инициализированы. Однако TypeScript рекомендует явно указывать типы переменных.
@yasmine
Еще можно использовать тип данных "Partial" для опциональности свойств объекта - это позволяет указывать, что все или некоторые свойства объекта могут быть необязательными:
1 2 3 4 5 6 7 8 |
interface User { name: string; age: number; } let user: Partial<User> = {}; // user может содержать как name, так и age или не содержать ни одно из этих свойств user.name = 'Alice'; // корректно user.age = 30; // корректно |