
Aleh
15.05.2017
10:48:42
не норм
там много чего сделано, но он не работает полностью
вроде их наработки юзают в pr для babylon, но я не смотрел код еси честно

Сергей
15.05.2017
10:50:42
чтоб бабилон мог парсить тс?

Google

Max
15.05.2017
10:52:44
что такое babylon?

Dreamerinnoise
15.05.2017
10:53:00
парсер

Max
15.05.2017
10:53:01
https://github.com/babel/babylon
оно?

Dreamerinnoise
15.05.2017
10:54:24
Да

Aleh
15.05.2017
10:54:42

Max
15.05.2017
11:50:57
тут завезли внезапно
само показывает имя аргумента
само

Artur
15.05.2017
11:51:27

Max
15.05.2017
11:51:54
сорян, мне говна в жс-е хватает )

Artur
15.05.2017
11:54:21

Google

Max
15.05.2017
11:54:31
угу (
парни
а почему не рекомендуется I префикс ставаить?
для интерфейсов

Artur
15.05.2017
12:26:16
Ну вот смотри, function handleSomething(something: ISomething) - какой здесь смысл в I? Это может быть как тип, так и интерфейс, так и класс
Грубо говоря, есть название сущности: Something. Всё остальное - лишний мусор вокруг

Max
15.05.2017
12:26:52
ну вот у меня импорт идет
import {AppStore} from "features/FormBuilder/reducer";

Artur
15.05.2017
12:26:56
Точно также можно сказать про префикс Abstract например для абстрактных классов

Max
15.05.2017
12:27:12
я пока не посмотрю как используется я не могу сказать что это — интерфейс или класс

Dreamerinnoise
15.05.2017
12:27:36
IItem

Artur
15.05.2017
12:27:43

Nikita
15.05.2017
12:27:45

Vladimir
15.05.2017
12:28:10
Учитывая что в TS нет разницы между интерфейсом и классом

Сергей
15.05.2017
12:28:44

Max
15.05.2017
12:28:51

Artur
15.05.2017
12:29:02

Vladimir
15.05.2017
12:29:04

Max
15.05.2017
12:29:11
сформулирую щас

Сергей
15.05.2017
12:29:44

Vladimir
15.05.2017
12:30:15
Ну не в этом смысле же

Google

Aleh
15.05.2017
12:30:17

Vladimir
15.05.2017
12:30:18
Всмлысе типов

Artur
15.05.2017
12:30:27
Короче, проблема нейминга интерфейсов-реализаций должна решаться (на мой взгляд) так:
Интерфейс/тип описывает общий кейз применения сущности, например: Mailer.
А вот класс, реализующий интерфейс, должен в названии содержать уточнение, например: SmtpMailer, FakeMailer, MailerLogger и так далее

Сергей
15.05.2017
12:30:28
тупняк =(

Max
15.05.2017
12:30:54

Aleh
15.05.2017
12:30:56

Artur
15.05.2017
12:31:23
I, Interface, Abstract в названии - признак того, что чувак не подумал при написании хорошо

Aleh
15.05.2017
12:31:26
к - костыли

Pavel
15.05.2017
12:33:11
мне вообще кажется странным использование слова Interface для того, что оно подразумевает в тс
но это наверно после джавы

Vladimir
15.05.2017
12:34:09
Оно подразумевает ровно то же, что и в джаве

Aleh
15.05.2017
12:35:07
только структурное

Pavel
15.05.2017
12:36:49
а тут это просто сахар для чекинга

Vladimir
15.05.2017
12:37:30
Чет ничего не понял
Там есть отличия, но суть одна и та же

Pavel
15.05.2017
12:39:32
это субъективно просто, в голове есть некий диссонанс когда задумываешься о реализации интерфейса в свойствах, а не в методах
ну точнее не только в методах

Google

Aleh
15.05.2017
12:39:56
ну так-то в жаве это такой же сахар для чекинга

Nikita
15.05.2017
12:40:05

Artur
15.05.2017
12:40:42
В symfony тоже советуют писать Interface, Abstract
Но там нет ответа на вопрос "зачем?"

Pavel
15.05.2017
12:41:17
мы кстати используем I для всяких IPropsState, IPropsDispatch, IProps - в рамках файла с компонентом быстро глаза цепляются
в остальных случаях по названию сущности

Nikita
15.05.2017
12:41:33

Admin
ERROR: S client not available

Pavel
15.05.2017
12:44:34
вообще от тайпскрипта ощущения двоякие, особенно после того как тебе в рантайме выпадает moment is not a function и ты потом обнаруживаешь тысячу способов подключить момент в тс, при этом каждый пишет свой

Aleh
15.05.2017
12:46:42
это вы allowSynteticDefault сделали?
ну т.е. вы компилятору сказали "пацан, я это сам похендлю" и не похендлили)

Pavel
15.05.2017
12:47:32
да нет, не сказали

Boris
15.05.2017
12:53:05
Такие же мысли постоянно
мне вообще кажется странным использование слова Interface для того, что оно подразумевает в тс

Max
15.05.2017
12:53:32
Ну вот это описане структуры данных по сути
Наверное поэтому хочется отделить

Aleh
15.05.2017
12:56:51

Max
15.05.2017
15:29:42
а что должна возвращать async функция которая возвращает массив строк?

Google

Сергей
15.05.2017
15:31:58
промис

Max
15.05.2017
15:31:59
Promise<string[]>

Сергей
15.05.2017
15:32:05
да

Max
15.05.2017
15:32:05
да, так заработало

Олег
15.05.2017
15:39:29
Но почему так

Сергей
15.05.2017
15:39:46
async возвращает промис, по стандарту

Dreamerinnoise
15.05.2017
15:39:51
Потому что асинк должна возвращать промис

Alexander
15.05.2017
15:43:40
потому что async-функция не может сразу вернуть значение по определению
соответственно, возвращает промис

Олег
15.05.2017
15:47:33
Я понял, спасибо)

Max
15.05.2017
17:33:22
а тут как обойти?
а все
вижу
const axiosMock = new (jest.fn<AxiosMock>());
ну и конструкция

Dreamerinnoise
15.05.2017
17:36:14
нормальная

Artur
15.05.2017
17:37:06

Max
15.05.2017
17:37:59
не, там сложнее
function fn<T>(implementation?: Function): Mock<T>;
…
interface Mock<T> extends Function, MockInstance<T> {
new (): T;
(...args: any[]): any;
}