169 похожих чатов

Почему подводит меня тс?(

20 ответов

7 просмотров

ну тут заворачивать в какую-то функцию надо. У тебя есть поле size с каким-то типом. Ты делаешь destructuring в переменную, у которой не объявлен тип явно, значит он выводится. Я так понимаю, он выводится как 12 | 16 | 32 | 48 | 's'

У него объявлен тип через generic :-)

Ну во-первых generic там уже с конкретным значением

Типизируешь слева направо. А надо справа налево

Ещё один пример мою копилку «не использовать FC», спасибо

Мы уже выяснили, что FC ни при чем

Где?

https://t.me/ts_cool/170022

js - one love- Автор вопроса

что это вообще значит?

А у fontSize какой тип? Или в чем проблема? А, понял

нуууу, смотря, какая деструктуризация, судя по всему

речь про "ты объявляешь переменную, потом присваиваешь ей тип, потом описываешь значение, которое будет содержаться в переменной" слева направо – перменная –> тип переменной -> значение переменной если же ты корректно типизируешь значение, то - во-первых, тип переменной, в которую ты положишь значение, будет вычислен автоматически - во-вторых, переменной можно не указывать тип – см. "во-первых" - в-третьих, чаще всего тайпскрипт корректнее выводит типы, чем человек

Ну в аргументах нельзя, потому что ты их затипизировал

а с FC можно

стало понятнее?

js - one love- Автор вопроса

неет) эти люди обсуждают что то посложнее) а так props: TitleProps работает идеально как я планировал

Что непонятно?

js - one love- Автор вопроса

то что люди обсуждают. я просто хотел затипизировать props жестко. type TProps = { name: 5 size?: number } чтобы нельзя было const {height} = props или const {size = "string"} = props потом нашел решение: props: TProps идеально работает.

В тайпскрипте у всего есть тип. Если ты не указал его явно, то тайпскрипт попытается его вывести. Когда ты пишешь const Component: FC<Props> = () => {}, тут фигурируют два типа — слева от операции присваивания и справа от неё. Если ты явно типизируешь слева (через fc), то тайпскрипт попытается вывести типы в правой части. А из-за ко-/контр- вариантности, справа параметры могут быть ШИРЕ ПО ТИПУ, а возвращаемое значение может быть УЖЕ ПО ТИПУ. Так работает тс. Если же ты типизируешь справа от операции присваивания, то тайпскрипу не остаётся манёвра для изъёбов — он работает так, как ожидается.

js - one love- Автор вопроса

большое спасибо за объяснение

Похожие вопросы

Обсуждают сегодня

generic procedure function test<T>(param: T); type case T of longint: NewT = word; longword: NewT = byte; end; var v1: NewT; Как это можно сделать? Чтобы у меня...
notme
21
Интересно, нет ли какого-то способа получить из dll не адрес самой метки, а адрес со смещением?
The Bird of Hermes
54
Делал задачу вот такую https://stepik.org/lesson/4985/step/9?unit=1083 получилось такое https://play.haskell.org/saved/ipKrepqe оно работает, тестов много не писал, но работае...
Fedor
22
Хотел уточнить: копирование из одного рекорда в другой однотипный рекорд можно только по полям отдельно или можно чохом, типа Assign?
Ed Doc
9
Похоже опять туплю задача https://stepik.org/lesson/5431/step/8?unit=1132 код и его работа https://play.haskell.org/saved/lmYTShXM на мой взгляд все правильно, и даже избыто...
Fedor
8
что-то я не понимаю, в линуксе отладочную информацию как убрать из бинаря? он что с этой опцией, что без - одного и того же (достаточно большого) размера (да, я про лазарь)
Iluha Companets
13
Hey Does anyone know how can I receive push notifications from Github on my account? The official Github android app doesn't send notifications, and I don't use the email bec...
Jacob
10
Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
58
Как в webstorm включить фичу, чтобы прямо в коде можно было видеть кто редактировал это строчку и в каком коммите?
Антон
8
задача какая - что ты дальше с этой переменно будешь делать? Чем вот так не устраивает? var v1: T;
Александр (Rouse_) Багель
6
Карта сайта