@typescript_ru

Страница 150 из 669
Ҫѐҏӗѫӑ
11.01.2017
19:32:04
и они легальны

Vladimir
11.01.2017
19:32:19
но это необъект

и нельзя никак сделать так, чтобы это был только объект

Ҫѐҏӗѫӑ
11.01.2017
19:33:44
ну 1 хрен это не надо юзать

Google
Ҫѐҏӗѫӑ
11.01.2017
19:33:53
const a: {} = Object.create(null); a.toString() и все

^ легально

кидает ошибку в рантайме

Vladimir
11.01.2017
19:35:33
https://www.typescriptlang.org/play/index.html#src=function%20test(x%3A%20%7B%20toLowerCase%3A%20()%20%3D%3E%20string%20%7D%20%7C%20number)%20%7B%0D%0A%20%20%20%20if%20(typeof%20x%20%3D%3D%3D%20'object')%20%7B%0D%0A%20%20%20%20%20%20%20%20x.toLowerCase()%3B%0D%0A%20%20%20%20%7D%20else%20%7B%0D%0A%20%20%20%20%20%20%20%20x.toFixed()%3B%20%2F%2F%20runtime%20error%0D%0A%20%20%20%20%7D%0D%0A%7D%0D%0A%0D%0Atest('foo')%3B

Мое любимое

Ҫѐҏӗѫӑ
11.01.2017
19:39:20
ну это так, надуманно

у меня покруче

хотя 1 хрен

хотя нет

Object.create(null) можно было бы и детектить

литерал жи

Vladimir
11.01.2017
19:41:43
Его можно детектить, но для него нужен отдельный тип

Ҫѐҏӗѫӑ
11.01.2017
19:42:14
во флоу есть?

Google
Vladimir
11.01.2017
19:42:37
Нет

Ҫѐҏӗѫӑ
11.01.2017
19:43:19
ага, сейм шит https://flowtype.org/try/#0PTAEAEDMBsHsHcBQiDGsB2BnALqAhgFygDeAvqALygDyARgFYCmK2AdCgE6N7aMAU6AK7RoASgDcyPK2ywAytg4BLdAHM+o5EA

ну там есть {| ... |}

можно было бы как-то к нему приводить

кстати

а, не

чот можно было б ишью завести, но я хз что писать

в заголовке

https://flowtype.org/try/#0PTAEAEDMBsHsHcBQiDGsB2BnALqAhgFygDeAvqALygDyARgFYCmK2AdCgE6N7aMAU6AK7RoASgDcyPK2ywAytg4BLdAHM+oxNLjRKoAOQ79koA

?

короч вот чот набросал если что https://github.com/facebook/flow/issues/3177

Vladimir
11.01.2017
19:59:52
ну спорно

const a: {} = Object.create(null);

Вот это должно быть ошибкой

Все остальное нормально

https://flowtype.org/try/#0PTAEAEDMBsHsHcBQiDGsB2BnALqAhqALygDyARgFYCmK2AdCgE5V7ZUAU6ArtNAJQBuRHjrZYAZWyMAlugDm7QYiA

Ҫѐҏӗѫӑ
11.01.2017
20:01:21
второе - то же самое

ну мое в смысле

там же написано что константа

Vladimir
11.01.2017
20:02:04
не понял

Google
Ҫѐҏӗѫӑ
11.01.2017
20:02:07
и добавиться они туда должны только если я их завожу там или ассайню в прототип прототип объекта

Vladimir
11.01.2017
20:02:37
добавлять новые свойства в объекты вообще нельзя

так что в этом особенного ничего нет

Ҫѐҏӗѫӑ
11.01.2017
20:02:50
ну это другой баг)

Vladimir
11.01.2017
20:03:01
это не баг

Ҫѐҏӗѫӑ
11.01.2017
20:03:18
я там указал ишью другую. на ней лейбл баг

Vladimir
11.01.2017
20:04:13
Хз, я бы не сказал что это баг

Нельзя к объектам добавлять свойства

Ҫѐҏӗѫӑ
11.01.2017
20:04:32
я сказал бы

Vladimir
11.01.2017
20:04:38
Почему здесь должно быть можно

Ҫѐҏӗѫӑ
11.01.2017
20:04:44
Vladimir
11.01.2017
20:04:55
во Flow

Vladimir
11.01.2017
20:04:58
И в TS

Ҫѐҏӗѫӑ
11.01.2017
20:06:44
https://flowtype.org/try/#0PTAEAEDMBsHsHcBQiDGsB2BnALqAhgFygDeoc0A-ETgE4CW6A5qAL6gC8JLA3IngHTkOoAOTkR3UCFCYAFrACu0ACagARgFMyGxnmiIgA

но вообще да

в случае с обжект нулл чот хз

нет, с обжект нул явно баг

это ж хэш

он для того и нужен

когда мапов нет

Google
Ҫѐҏӗѫӑ
11.01.2017
20:08:26
либо extends null надо

чего флоу тоже не умеет вроде

Vladimir
11.01.2017
20:08:45
Мэп надо обявлять мэпом

Ҫѐҏӗѫӑ
11.01.2017
20:08:52
зависит

от окружения

если надо стринговые ключи, то это норм путь

особенно в в8

Vladimir
11.01.2017
20:09:32
причем здесть это

Ҫѐҏӗѫӑ
11.01.2017
20:09:45
при том, что для этого такие объекты и юзаются

Vladimir
11.01.2017
20:10:10
мэпы небезопасны

Admin
ERROR: S client not available

Vladimir
11.01.2017
20:10:17
поэтому их нужно явно объявлять

для Object.create(null) можно сделать специальную поддержку

но ее отстуствие - это не баг

Ҫѐҏӗѫӑ
11.01.2017
20:10:45
через обжект литерал?

Vladimir
11.01.2017
20:10:51
это отсутствие фичи

Ҫѐҏӗѫӑ
11.01.2017
20:11:22
через обжект литерал?
тогда туда добавится цепочка прототипов

без нее в8 умеет делать збс чотко

Vladimir
11.01.2017
20:11:51
да какая разница что в8 умеет

Ҫѐҏӗѫӑ
11.01.2017
20:12:10
он потому что если умеет, то для флоу это тоже не проблема

Google
Vladimir
11.01.2017
20:12:44
нет

Ҫѐҏӗѫӑ
11.01.2017
20:13:09
ну значит флоу такое же говно

как и тс

Vladimir
11.01.2017
20:13:17
нет

Ҫѐҏӗѫӑ
11.01.2017
20:13:19
поэтому тс лучше

Vladimir
11.01.2017
20:13:32
такого говна как тс больше нет

Ҫѐҏӗѫӑ
11.01.2017
20:13:40
THE shit

Vladimir
11.01.2017
20:13:46
а тс вообще не поддерживает Object.create

ему похуй

Ҫѐҏӗѫӑ
11.01.2017
20:14:03
у него классы есть

Vladimir
11.01.2017
20:14:19
збс

Ҫѐҏӗѫӑ
11.01.2017
20:14:22
да

Vladimir
11.01.2017
20:14:46
только они тоже через жопу работают

Anatoly
11.01.2017
20:44:55
На вопрос только никто не ответил )

<{},{}>

Ҫѐҏӗѫӑ
11.01.2017
20:46:01
ответ: это нелегальный снитаксис

Anatoly
11.01.2017
20:46:02
Зачем 2 литерала?

Легальный только <T> ?

Ҫѐҏӗѫӑ
11.01.2017
20:47:13
https://www.typescriptlang.org/play/index.html

есть плэйграунд для этого

Anatoly
11.01.2017
20:57:03
Я понимаю, но меня интересует больше природа и семантика подобного написания, а именно <x, x>, а не результат компиляции. Наверное лучше погуглить и почитать про это в c#/java etc, но вдруг кому-то не лень тут в двух словах это раписать )

Aleh
11.01.2017
20:57:56
зачем два типа указывать в <>? Ну есть пример с реакт компонентами

там есть тип пропсов и тип стейта

Страница 150 из 669