@typescript_ru

Страница 52 из 669
Ярослав
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
Но ему ж нужно скомпилиться в какой-то файл, или нет?
allowJs должен по зависимостям в том числе js подтягивать и копировать в итоговую директорию, так что скорее всего перетащится всё, что нужно для тестов

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
Кстати, я не въехал как быть с импортом css
В 2.0 можно же вот так делать declare module '*.css';

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 на части обычно делает так

Дмитрий
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 с описаниями код стайла"

hlomzik
28.08.2016
18:24:56
.editorconfig может?
ну вообще любой файл, который поддерживает редактор. мой читает .eslintrc

Дмитрий
28.08.2016
18:25:29
.editorconfig может?
ну там только самое общее, .eslintrc все равно нужен

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

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 и потом успешно передать его и получить фейл в рантайме в этом вся суть тайпскрипта

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
Ты сам привёл к более общему типу же
ты же не можешь написать let b:B = new A()

Дмитрий
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 то все подчеркивается

A означает что B отвечает типу 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
я не использовал <> или as
Тебе не кажется странным, что все нормально работает если стререть ((a:A) => void)

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
ошибка есть, но ts не находит
А в моих примерах что?

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

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

Mike
30.08.2016
16:54:42
А в моих примерах что?
а в твоих примерах другой кейс

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