@typescript_ru

Страница 609 из 669
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 не устанавливает, т.к. не может найти

Google
Alexander
17.05.2018
08:11:40
Надо написать
И как это делается?

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

Artur
17.05.2018
08:11:59
И как это делается?
https://github.com/DefinitelyTyped/DefinitelyTyped#create-a-new-package

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
В папке types
В корне проекта или как?

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
Если явно return <Bar>'2' то норм
Да) но это равносильно тому, чтобы написать возвращаемый тип вместо каста)

ладно, спасибо все равно)

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

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

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

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 } тогда ты сможешь им пользоваться, но подробных тайпингов не будет, ты сможешь любые методы вызывать у моделя, даже которых не существует и ошибки не будет

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 {}

Sukhrob
17.05.2018
11:26:30
anyClassType = new(...args: any[]) => object
спасибо! Прокатило.

> var1: typeof Object что это за запись, я вообще не очень понимаю
Это сообщение компилятору, что var1 может принимать в качестве значения ТОЛЬКО ссылку на класс Object или его производных. в общем-то ничем не отличается от var1: typeof Class1;

Пёс Цифрового Сопротивления
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 не настраивается, и это прекрасно. https://medium.com/@cakeinpanic/e5dd05b78b97
это прекрасно безусловно, абсолютно согласен

до того как увидел то как он работает с prettier

Google
Сергей
17.05.2018
12:57:03
prettier не настраивается, и это прекрасно. https://medium.com/@cakeinpanic/e5dd05b78b97
если бы у него стиль был нормальный, было бы прекрасно

но сколько он говнища делает, это бесит

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

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

Сергей
17.05.2018
12:57:50
вот в этом пункте (<>) согласен
да, там много пунктов

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