
andretshurotshka?❄️кде
16.05.2018
18:15:50
интерфейсы же мержатся
значит все так и типизируется по сути

Bogdan
16.05.2018
18:17:19
мержатся это как?

andretshurotshka?❄️кде
16.05.2018
18:18:02

Google

andretshurotshka?❄️кде
16.05.2018
18:18:02
как в доке

Sergey
16.05.2018
18:29:04
Зачем они так сделали >.<

Artur
16.05.2018
18:33:52
позволяет легко добавить свои свойства в Window например

Sergey
16.05.2018
18:34:22
Ну я понял что для расширения чужих типов
Но выглядит диковато, хотя дело привычки

Vlad
16.05.2018
19:35:57
вот это поворот, коллега

Eugeniy
17.05.2018
08:03:43
Подскажите пожалуйста, есть такой пример:
type Bar = '1' | '2'
class A {
foo(): Bar {
return '1'
}
}
class B extends A {
foo() {
return '2'
}
}
Почему foo в классе B требует явного указания типа Bar, если Bar являсется union?

Sergey
17.05.2018
08:07:00
Это tsc требует или линтер?

Alexander
17.05.2018
08:10:23
Я новичок. Устанавливаю модуль, а ругается, что нет @types. Что делать? yarn add @types/webpack-config не устанавливает, т.к. не может найти

Artur
17.05.2018
08:11:07
Надо написать

Google

Alexander
17.05.2018
08:11:40

Abu
17.05.2018
08:11:53
Пиши свои типы

Artur
17.05.2018
08:11:59

Abu
17.05.2018
08:12:07
В папке types

Artur
17.05.2018
08:12:45
Это правильный путь. А простой - воткнуть
declare module "webpack-config" {
const module: any
export = module
}
Типов, естественно, не будет

Alexander
17.05.2018
08:18:49

Eugeniy
17.05.2018
08:36:42

Sergey
17.05.2018
08:40:29
tsc
Вы не подумайте, я не издеваюсь - но почему бы ему так не делать? В смысле перегрузка не обязана тот же тип возвращать

Eugeniy
17.05.2018
08:41:23
Ну, если допустим указать в родительском классе возвращаемый тип string или number, то при переопределении он не требует указывать этот же тип
он берет его из родительского класса
в том же flow такое поведение работает отлично :(

Sergey
17.05.2018
08:42:15
Хз, проблема какая-то... не проблема)

Eugeniy
17.05.2018
08:42:30
Да, не совсем проблема, просто хотел узнать почему так

Sergey
17.05.2018
08:43:39

Eugeniy
17.05.2018
08:44:40
Угу, вот пример: https://goo.gl/w3zUYu

Sergey
17.05.2018
08:46:23
Ну он пишет что строку скастить не может в Bar
Если явно return <Bar>'2' то норм
И это ну хз, полезно наверное не всегда

Denmuch
17.05.2018
08:48:28
Ребят, наверняка уже кто-то спрашивал, то может подскажете где искать?
Как подтянуть тайпскрипт до про уровня? сейчас работаю с ним, но каждый раз что-то новое обнаруживаю для себя. Есть ли книга какая, в которой есть все все и даже больше.

Google

Denmuch
17.05.2018
08:49:10
с Angular уклоном

Eugeniy
17.05.2018
08:50:29
ладно, спасибо все равно)

Aleh
17.05.2018
08:51:30
По идее он правильно выведет в случае
const a = '2'
return a

Alexander
17.05.2018
09:11:19
Так, в итоге, допустим, я хочу использовать плагин webpack-config, но для него нет types. Что мне нужно сделать?

Тимофей
17.05.2018
09:12:23

Andrey
17.05.2018
09:12:55
Ну или any проставь.

Alexander
17.05.2018
09:17:31
Напиши его сам.
Как его прописать? Ругается на строчке import * as Config from 'webpack-config';

Andrey
17.05.2018
09:18:18

Alexander
17.05.2018
09:21:26
Создать файл webpack-config с содержимым?
declare module webpack-config

Dmitrii
17.05.2018
09:22:12
Так, в итоге, допустим, я хочу использовать плагин webpack-config, но для него нет types. Что мне нужно сделать?
модуль написан на js, для него нужны т.н. "тайпинги" - описание модуля и его методов, чтобы TS понял что там происходит. Их нет. Нужно написать их самому, создав некий файл, например webpack-config.d.ts. Можно написать тайпинги подробно и выложить их в репозиторий, чтобы другие люди могли ими пользоваться, либо как выше предложили
declare module "webpack-config" {
const module: any
export = module
}
тогда ты сможешь им пользоваться, но подробных тайпингов не будет, ты сможешь любые методы вызывать у моделя, даже которых не существует и ошибки не будет

Artur
17.05.2018
09:23:52
ПРям в твой файл конфига воткни это

Alexander
17.05.2018
09:24:47
А где этот файл создавать? И куда его подключать?

Artur
17.05.2018
09:25:17
для начала это заработает

Eugeniy
17.05.2018
09:48:07
@yarrrrrrrr нашел тут что-то вроде попозала - https://github.com/Microsoft/TypeScript/issues/23911

Admin
ERROR: S client not available

Google

Sukhrob
17.05.2018
10:14:06
Привет!
var1: typeof Class1;
Тут var1 может принимать в качестве значения ссылку на класс Class1 или его производных.
А как описать тип var1, чтобы он мог принимать в качестве значения ссылку на любой класс?
Пробовал так
var1: typeof Object;
Но это не прокатило, ибо не все классы наследуются от Object, потому что обычно я создаю классы так:
class Class1 {}
а не так
class Class1 extends Object {}

Пёс Цифрового Сопротивления
17.05.2018
10:42:52
по сути только конструктор
> var1: typeof Object
что это за запись, я вообще не очень понимаю

Sukhrob
17.05.2018
11:26:30

Пёс Цифрового Сопротивления
17.05.2018
12:08:31
А в чем разница между
var1: Class1?

Vlad
17.05.2018
12:49:34
кто-то юзает prettier с TypeScript?

Тимофей
17.05.2018
12:49:53

Vlad
17.05.2018
12:51:10
при определенных условиях (длинная строка) строки с generic-ами форматятся примерно так:
this.stuff =
new Bob<
GenericType
>(
param1,
param2,
moarParam3
);
Вот этот перенос с <> напрягает. Как разруливаете? Пишете строки короче? Или как-то можно это заигнорить ?
https://prettier.io/playground/#N4Igxg9gdgLgprEAucAbAhgZ0wAgIIBGYAPACoB8OwAOlDjpFJjAE4CuYMELAFAHQD0LAOaYAlFVr16jTBFRw+qCMJ5DRYgNxScAX1r6otMBmw4AymwAO6AMKncNOjgO1j0ZjgBucFgE8ANV9A4KD-MJDw0Oio2Mj4gBloYTD0AEsCBRwAXhwoOAB3fCJiSxt7LExyHgByZShhGoAaHDrk5tb6xpa2ho6azGt0HC7+gCYxgA4R9p6AC3QFkbZUAC9+haXUFfWxECaQCCsYNI9kUCEWCAKABSEETGQQdC8INIATfZACFnQwAGs4DBzDYwGkGshWGw4AdwZhfDAbr9hABbdDIABm6FQ8IOACtMAAPABCvwBQPM6BRcAS4LgmOxuJANhY8JYTxgfiscEwYBYaWOXys-NgAHUPjA5shJgAGA7CiDw0W-KxPYU83w+L4sOAARzYaR1SPQqPRSCxOJhIHhKLSkPYVsw4OECgAimwIPAGZaDjB0ARxe9Jcgxr7fmlUM7bBAUWinlBoPSDmx4aR-Y9zYy4LpdEA
вот пример с плейграунда
искуственный конечно, но да.
@tanyaisinmybed FYI

Sukhrob
17.05.2018
12:55:14

Artur
17.05.2018
12:56:21

Vlad
17.05.2018
12:56:44
до того как увидел то как он работает с prettier

Aleh
17.05.2018
12:56:59

Google

Сергей
17.05.2018
12:57:03
но сколько он говнища делает, это бесит

Vlad
17.05.2018
12:57:20
честно говоря для меня аргумент "одинаково , молчать" переваливает аргументы за "мне не оч нравится вот этот формат"

Max
17.05.2018
12:57:36

Vlad
17.05.2018
12:57:41

Artur
17.05.2018
12:57:47
нормальный всем разный

Сергей
17.05.2018
12:57:50