Своими словами:
в этих типах мы используем обобщения (дженерики).
Например, утилита
Она берет все ключи исходного типа (
Но к каждому полю добавлен значок
А типы полей ровно те же самые, что и у исходного типа -
В итоге получается точно такая же структура, но каждое поле в ней необязательное.
#typescript
в этих типах мы используем обобщения (дженерики).
Например, утилита
Partial
принимает некий тип T
, неизвестно, какой конкретно, и на его основе создает новый тип.Она берет все ключи исходного типа (
keyof T
) и делает их своими ключами. Каждый конкретный ключ обозначается типом P
. То есть P
- это каждый ключ типа T
, и у нового типа будут те же самые поля.Но к каждому полю добавлен значок
?
- то есть поле становится опциональным, необязательным.А типы полей ровно те же самые, что и у исходного типа -
T[P]
. Это обычный синтаксис доступа к свойствам объекта, но тут он применяется к типу.В итоге получается точно такая же структура, но каждое поле в ней необязательное.
#typescript
👍2🔥1
Typescript. Утилиты. Часть 2 (Exclude, Extract, NonNullable)
Первая часть (Readonly, Required, Partial): https://t.me/react_junior/413
Exclude
Принимает два параметра:
-
-
Результатом является объединение, в которое входят все члены
Extract
Принимает два параметра:
-
-
Результатом является объединение, в которое входят все члены
NonNullable
Принимает один параметр
#typescript
Первая часть (Readonly, Required, Partial): https://t.me/react_junior/413
Exclude
Принимает два параметра:
-
Union
-
ExcludedMembers
- члены, которые нужно исключить из Union
Результатом является объединение, в которое входят все члены
Union
, кроме тех, которые могут быть присвоены в ExcludedMembers
Extract
Принимает два параметра:
-
Type
-
Union
- объединение типов, которые нужно отобрать из Type
Результатом является объединение, в которое входят все члены
Type
, которые одновременно могут быть присвоены в Union
NonNullable
Принимает один параметр
Type
и выбрасывает из него null
и undefinded
.#typescript
👍2🔥1