Какие типы данных могут быть опциональными в Typescript?

Пользователь

от yasmine , в категории: JavaScript , 2 года назад

Какие типы данных могут быть опциональными в Typescript?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от otha_marks , 2 года назад

@yasmine 

В TypeScript опциональными могут быть следующие типы данных:

  1. undefined: переменная может иметь значение undefined, если она объявлена с помощью оператора ? после имени переменной или при инициализации ее значением undefined. Например:
1
2
let x: string | undefined;
let y?: number = undefined;


  1. null: переменная может иметь значение null, если она объявлена с помощью оператора ? после имени переменной или при инициализации ее значением null. Например:
1
2
let x: string | null;
let y?: number = null;


  1. union types: переменная может иметь несколько типов, включая undefined или null. Например:
1
2
let x: string | undefined | null;
let y: number | null | undefined = 42;


  1. optional parameters и optional properties: параметры функций и свойства объектов могут быть опциональными, если они объявлены с помощью оператора ?. Например:
1
2
3
4
function foo(x?: string) { /* ... */ }
interface MyInterface {
  prop?: number;
}


Важно отметить, что переменные, объявленные без указания типа, могут иметь значение undefined или null, если они не были инициализированы. Однако TypeScript рекомендует явно указывать типы переменных.

Пользователь

от leila.dickinson , 8 месяцев назад

@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; // корректно