Size: a a a

2020 April 23

SP

Stanislav Popov in rust_offtopic
Дмитрий Беляев
а вот if(typeof arg === 'number')
мне гарантирует что в arg число, даже если я на голом js пишу, без всякого ts
рантайм проверка тебе это может гарантировать только при непосредственном исполнении, кинув эксепшен в лицо. а еще лучше просто пропустив кусок кода и не сделав ничего. эта гарантия не подсветит тебе красным все вызовы например
источник

SP

Stanislav Popov in rust_offtopic
Дмитрий Беляев
но в рантайме ведь нет типов да?
нету. ты просто берешь рантайм обьект и проверяешь у этого рантайм обьекта рантайм свойство которое позволяет его определить к какому то рантайм-множеству рантайм-значений
источник

SP

Stanislav Popov in rust_offtopic
хотя ты это все итак знаешь
источник

SP

Stanislav Popov in rust_offtopic
Дмитрий Беляев
а если я вызову так:
f({} as any)
я кстати понял о чем ты. это такая попытка сманипулировать что если имеем достаточно широкий сумтип то он превращается в any
источник

ДБ

Дмитрий Беляев... in rust_offtopic
Stanislav Popov
рантайм проверка тебе это может гарантировать только при непосредственном исполнении, кинув эксепшен в лицо. а еще лучше просто пропустив кусок кода и не сделав ничего. эта гарантия не подсветит тебе красным все вызовы например
источник

SP

Stanislav Popov in rust_offtopic
ну в статике у тебя функция принимающая что угодно отдающее намбер, и что?
источник

A

Alex in rust_offtopic
Stanislav Popov
я кстати понял о чем ты. это такая попытка сманипулировать что если имеем достаточно широкий сумтип то он превращается в any
но на практике такое не возможно и any это не сумтип, any просто говорит не чекать тип и все
источник

ДБ

Дмитрий Беляев... in rust_offtopic
Stanislav Popov
ну в статике у тебя функция принимающая что угодно отдающее намбер, и что?
тс знает, что typeof сделает проверку типа в рантайме а значит внутри if точно number, хотя снаружи - что угодно
источник

SP

Stanislav Popov in rust_offtopic
тс не знает что тайпоф сделает проверку, тс просто скипает все что связано с any как заботу уровня ниже, т.е. динамики. и все что тс отсюда выносит это сигрнатуру функции
источник

ДБ

Дмитрий Беляев... in rust_offtopic
Stanislav Popov
тс не знает что тайпоф сделает проверку, тс просто скипает все что связано с any как заботу уровня ниже, т.е. динамики. и все что тс отсюда выносит это сигрнатуру функции
наведи на arg внутри if в плеграунде
источник

SP

Stanislav Popov in rust_offtopic
я не понимаю что происходит, ты выслушал моё определение статики которое частично похоже на определение пирса и большенство статикобогов этого чатика со мной согласны и кидаешь тонкие моменты которые какбы должны в этом определении пробить какуюто брешь
источник

SP

Stanislav Popov in rust_offtopic
Дмитрий Беляев
наведи на arg внутри if в плеграунде
а ну неплохо что они трекают это
источник

ДБ

Дмитрий Беляев... in rust_offtopic
Stanislav Popov
а ну неплохо что они трекают это
источник

SP

Stanislav Popov in rust_offtopic
тоесть они по коду (typeof arg === 'number') понимают что внутри ифа оно намбер. это разумно и это определяется по коду
источник

SP

Stanislav Popov in rust_offtopic
прикольно
источник

ДБ

Дмитрий Беляев... in rust_offtopic
Stanislav Popov
тоесть они по коду (typeof arg === 'number') понимают что внутри ифа оно намбер. это разумно и это определяется по коду
они лишь понимают, что проверка типа будет в рантайме
а так же они понимают, так как в if есть return
то после него точно не number
источник

SP

Stanislav Popov in rust_offtopic
ну да. они эту одназначность рантайм поведения переносят в компайлтайм, симулируют её если точнее
источник

B

Biose in rust_offtopic
ТФ3 на раст конфирмед
источник

ДБ

Дмитрий Беляев... in rust_offtopic
Biose
ТФ3 на раст конфирмед
источник

SP

Stanislav Popov in rust_offtopic
Stanislav Popov
ну да. они эту одназначность рантайм поведения переносят в компайлтайм, симулируют её если точнее
и это круто, это то что я пытался обьяснить питонодаунам, когда говорил что то когда они делают a = 1 тип а очевиден и статичен, но им почему то выгодно думать что там any у них
источник