
Ярослав
25.08.2016
19:51:13
Вообще тот, кто придумал форму import from вместо from import — тот ещё садист

Aleh
25.08.2016
19:53:45
м, а зачем отделять типы от остального?
import { Component, ReactElement } from "react"; не?

Viacheslav
25.08.2016
20:25:47
правильные тайпинги jquery наконец опубликовали @jquery_ru

Google

Ҫѐҏӗѫӑ
25.08.2016
20:26:50

Vladimir
25.08.2016
20:29:57
> @mkusher
м, а зачем отделять типы от остального?
иначе нельзя коспилировать
*компилировать

Ҫѐҏӗѫӑ
25.08.2016
20:31:57

hlomzik
25.08.2016
20:57:17

Andrey
25.08.2016
20:58:23
Ок, буду пробовать

Denis
26.08.2016
07:28:20
Flow и PostCSS затащили в WebStorm https://blog.jetbrains.com/webstorm/2016/08/webstorm-2016-3-early-access-preview/

Dreamerinnoise
26.08.2016
07:29:39
Кстати, я не въехал как быть с импортом css
TS ругается на это

Aleh
26.08.2016
07:33:28

Dreamerinnoise
26.08.2016
07:34:07
видел
это действительно решение?

Google

Artur
26.08.2016
07:42:19
typed css modules тоже норм решение.

Dreamerinnoise
26.08.2016
08:24:27
Кто-то пользуется в vscode расширением eslint? он не хочет линтить файлы в дот папках

Дмитрий
26.08.2016
08:31:51
И правильно делает
Что там линтить, там же одна конфигурация

Dreamerinnoise
26.08.2016
10:24:42

Дмитрий
26.08.2016
10:26:52
Ну как... У меня там галпфайл и таски
Не, в этих папках должно быть то, что вообще не имеет отношения к проекту напрямую, для этого и игнорируется
gulp tasks можно класть просто в папку gulp, кто распиливает gulpfile на части обычно делает так

Dreamerinnoise
26.08.2016
10:28:15

Дмитрий
26.08.2016
10:29:09
Ну просто их игнорирование - ожидаемое поведение, лично для меня

Artur
26.08.2016
10:31:29
Папки .xxx во всех редакторах же игнорируются. Если кому-то нравится туда класть код, то это колхоз.

Aleh
26.08.2016
18:23:59
@izatop https://github.com/Microsoft/TypeScript/issues/5863#issuecomment-242782664

マイク
26.08.2016
18:29:10
https://plus.google.com/+RobPikeTheHuman/posts/R58WgWwN9jp

Denis
28.08.2016
15:52:04
Отступы в JavaScript-коде. Кто что использует?
2 пробела – 132
??????? 56%
Tab – 65
??? 28%
4 пробела – 35
?? 15%
Другое – 3
▫️ 1%
? 235 people voted so far.

hlomzik
28.08.2016
16:42:17
"Редактор, который умеет читать .eslintrc с описаниями код стайла"

Aleh
28.08.2016
18:24:23

hlomzik
28.08.2016
18:24:56

Дмитрий
28.08.2016
18:25:29

Denis
28.08.2016
20:23:04

Aleh
29.08.2016
16:15:24
https://github.com/superpowers/superpowers-core какая штука на ts

Google

Denis
29.08.2016
16:28:42
Парни, в @react_js общий сбор - решаем судьбу React-приложений на следующие 12 месяцев :)

Aleh
29.08.2016
16:29:04
O.o

Ҫѐҏӗѫӑ
29.08.2016
23:34:50

andretshurotshka?❄️кде
30.08.2016
04:36:49
как расширить внешний нэймспейс?
import tape = require('tape')
declare module 'tape' {
namespace tape {
export let newprop: boolean
}
}
export = require('tape')
Выдает ошибку
node_modules/@types/tape/index.d.ts(45,49): error TS2305: Module ''tape'.tape' has no exported member 'TestCase'.
node_modules/@types/tape/index.d.ts(50,49): error TS2305: Module ''tape'.tape' has no exported member 'TestCase'.
node_modules/@types/tape/index.d.ts(60,46): error TS2305: Module ''tape'.tape' has no exported member 'StreamOptions'.
node_modules/@types/tape/index.d.ts(68,37): error TS2305: Module ''tape'.tape' has no exported member 'TestCase'.

Mike
30.08.2016
16:39:17
может кто пояснить почему это компилируется? http://goo.gl/xjvIb1
кому лень смотреть
let funcWantA : ((a:A) => void) = (b:B) => alert(b.propB);

Дмитрий
30.08.2016
16:41:31
Переменная имеет тип (a:A) => void, т.е. функции, возвращающей void
Что не так?)

Mike
30.08.2016
16:42:11
то что я могу запихнуть туда функцию которая ожидает параметр несовместимого типа
и потом успешно передать его и получить фейл в рантайме

Vladimir
30.08.2016
16:42:25
потому что тайпскрипт - говно
https://flowtype.org/try/#0PQKgBAAgZgNg9gdzCYAoVBjGBDAzrsAQTAG9UwKwAHAJzisIC4A7AVwFsAjAUxoG5UAX3RY8BAEJhuADwAu3ZgBMCxMpWp0q4lhx78h6GN1lgorZhgDq2ZrKYAKe9kaEAlGAC8APjAA3OACWiu4eYPacjOIhPthGNLLhAHS09FECqEYmnKyysnDMnmCKcBgcCrKJGDTc2PIAokbs5fYA5Nm5+S2uAu15zInycgDC+fK2hQBEAMrYAJ5gABLcMPATPTl9iflYARgA1oVmFrIB+fbuapRHVjZ29szcSITn3QaoxaVNtomccIqziWwVCoCkUQwAFgEYIpwht8t0gA
> Mike
и потом успешно передать его и получить фейл в рантайме
в этом вся суть тайпскрипта

Дмитрий
30.08.2016
16:43:13

Mike
30.08.2016
16:43:45
потому что функция ожидает наследника, а передаём предка.
http://goo.gl/xjvIb1 зайди, запусти и получишь undefined в рантайме

Дмитрий
30.08.2016
16:44:36
Ты сам привёл к более общему типу же

Mike
30.08.2016
16:45:00
я ничего не приводил. По умолчанию он считает их приводимыми
что неверно вообще-то

Vladimir
30.08.2016
16:45:33
серьезно, если вам важно избегать ошибки в рантайме, то тайпскрипт этого не дает

Google

Mike
30.08.2016
16:45:55

Дмитрий
30.08.2016
16:46:58
что неверно вообще-то
Твоя запись просто сама себе противоречит, в этом всё дело. тут нет правильного варианта изначально

Mike
30.08.2016
16:47:13
это сокращённый пример
явно показывающий косяк

Дмитрий
30.08.2016
16:47:24
В объявлении слева стоит что можно передать тип A, вот мы его и передаем

Mike
30.08.2016
16:47:35
а фигли он присваивает то туда?

Дмитрий
30.08.2016
16:47:45
B extend A

Mike
30.08.2016
16:47:49
ща

Дмитрий
30.08.2016
16:48:58
B extend A означает что B отвечает типу A, ругаться не на что.

Mike
30.08.2016
16:49:24
A означает что B отвечает типу A, но не наоборот!

Дмитрий
30.08.2016
16:49:35
Если стереть extend или бессмысленную запись a:A то все подчеркивается

Mike
30.08.2016
16:50:01
я не использовал <> или as

Дмитрий
30.08.2016
16:50:08
Сотри свой A, если его нельзя принимать, что он там дделает тогда вообще?))
Ты обявляешь о том, что можно передавать тип, и когда тебе никто не мешает его передать ты почему то удивляешься))

Vladimir
30.08.2016
16:51:05
> @ZeroBias
Ты обявляешь о том, что можно передавать тип, и когда тебе никто не мешает его передать ты почему то удивляешься))
тайп чекер и должен находить ошибки, не?

Дмитрий
30.08.2016
16:51:37

Vladimir
30.08.2016
16:52:18
Если бы программисту лучше было би видно, то тайп чекеры были бы не нужны

Дмитрий
30.08.2016
16:52:21
Блин

Google

Mike
30.08.2016
16:52:36
вот пример более явный http://goo.gl/QAKcxp


Дмитрий
30.08.2016
16:52:37
https://www.typescriptlang.org/play/index.html#src=class%20A%20%7B%0D%0A%20%20%20%20public%20propA%3Anumber%20%3D%2010%3B%0D%0A%7D%0D%0A%0D%0Aclass%20B%20extends%20A%20%7B%0D%0A%20%20%20%20public%20propB%3Anumber%20%3D%2015%3B%0D%0A%7D%0D%0A%0D%0Alet%20funcWantA%3A((a%3AA)%20%3D%3E%20void)%20%3D%20(b%3AB)%20%3D%3E%20alert(b.propB)%3B%0D%0A%0D%0Alet%20button%20%3D%20document.createElement('button')%3B%0D%0Abutton.textContent%20%3D%20%22Say%20Hello%22%3B%0D%0Abutton.onclick%20%3D%20function()%20%7B%0D%0A%20%20%20%20funcWantA(new%20A())%3B%0D%0A%7D%0D%0A%0D%0Adocument.body.appendChild(button)%3B
Ошибка
https://www.typescriptlang.org/play/index.html#src=class%20A%20%7B%0D%0A%20%20%20%20public%20propA%3Anumber%20%3D%2010%3B%0D%0A%7D%0D%0A%0D%0Aclass%20B%20%7B%0D%0A%20%20%20%20public%20propB%3Anumber%20%3D%2015%3B%0D%0A%7D%0D%0A%0D%0Alet%20funcWantA%3A((a%3AA)%20%3D%3E%20void)%20%3D%20(b%3AB)%20%3D%3E%20alert(b.propB)%3B%0D%0A%0D%0Alet%20button%20%3D%20document.createElement('button')%3B%0D%0Abutton.textContent%20%3D%20%22Say%20Hello%22%3B%0D%0Abutton.onclick%20%3D%20function()%20%7B%0D%0A%20%20%20%20funcWantA(new%20A())%3B%0D%0A%7D%0D%0A%0D%0Adocument.body.appendChild(button)%3B
ошибка


Vladimir
30.08.2016
16:53:16
только ошибка и там и там

Mike
30.08.2016
16:53:20
вопрос именно в наследовании и то что когда функция хочет наследника ей можно скормить предка

Дмитрий
30.08.2016
16:53:56
Вот это жесть

Vladimir
30.08.2016
16:54:14
ошибка есть, но ts не находит

Дмитрий
30.08.2016
16:54:23

Vladimir
30.08.2016
16:54:32
тоже самое?

Дмитрий
30.08.2016
16:54:39
А открыть?

Mike
30.08.2016
16:54:42