
Vladimir
25.10.2016
11:18:56
Т к name и age доступны, потому что class как бы создает скоуп

Андрей
25.10.2016
11:20:06
при минимальной фантазии (или просто при знании спеки языка) аналогично - параметр конструктора с квалификтором доступа доступен в методах. конструктор тоже создает пространство видимости. в скале это нагляднее, но и только

Vladimir
25.10.2016
11:20:27
Он доступен только через this

Андрей
25.10.2016
11:20:51
разумеется, для общности. готов принять, что это дело вкуса)

Google

Vladimir
25.10.2016
11:21:21
Учитывая уровень дискуссии в TC39 в JS такое не попадет никогда
Потому что в таком синтаксисе отсутствует логика

Андрей
25.10.2016
11:22:04
» TC39 ? уточните пжл, что это

Vladimir
25.10.2016
11:22:22
Комитет, который пишет спецификацию Ecmascript

Андрей
25.10.2016
11:23:10
спасибо.
я вижу логику в этом синтаксисе, но вашу точку зрения тоже услышал

Vladimir
25.10.2016
11:23:50
Я имею в виду вот что
class Foo {
x: number;
}
class Foo {
public x: number;
}
Одно и то же
class Foo {
constructor(x: number) { }
}
class Foo {
constructor(public x: number) { }
}
НЕ одно и то же
Это очень сильная некосистетность

Google

Vladimir
25.10.2016
11:25:32
Фича нужная, но реализация абсолютно непродуманная

Aleh
25.10.2016
11:26:32
скоупы для классов ваще норм

Андрей
25.10.2016
11:28:33
причем вам аномалией тут кажется пример №4, а мне — пример №1, т.к. в привычных мне стандартах кодирования (в языках типа шарпа) не указывать модификатор видимости чаще всего запрещено.
так что у меня было бы:
class Foo { public x: number; }
class Foo { private x: number; }
class Foo { constructor(public x: number) {} }
class Foo { constructor(private x: number) {} }
ну и class Foo { constructor(x: number) { ... some code ...} }
а class Foo { x: number; } - просто невалидно... хотя понимаю, что джиэсеры меня в таком не поддержат :)

Vladimir
25.10.2016
11:30:58
Это означает, что нельзя что то принять в конструктор, но не сохранять

Андрей
25.10.2016
11:41:16
нет, без модификатора именно так и осталось - принять, и можно и не сохранить
btw, в скале тоже class Foo(a: String) отличается от class Foo(private val a: String), хоть отличие и не очень большое http://stackoverflow.com/questions/14694712/do-scala-constructor-parameters-default-to-private-val

Глеб
25.10.2016
12:33:12
Привет парни, кто нить осилил абсолютные пути в ts проекте, чтоб импорт вместо ../../../utils стало src/utils
?

Aleh
25.10.2016
12:34:54
ну. а в чем проблема?

Dreamerinnoise
25.10.2016
12:34:58
--baseUrl
paths
https://www.typescriptlang.org/docs/handbook/module-resolution.html#path-mapping

Aleh
25.10.2016
12:35:08
конкретно это работает и без baseUrl

Dreamerinnoise
25.10.2016
12:36:20

Aleh
25.10.2016
12:36:33
baseUrl и paths для этого не нужны
ts всегда ищет по родительским папкам же
но если у вас два рута, например app1/ и app2/ то тогда надо

Dreamerinnoise
25.10.2016
12:39:12
если у меня в папке src лежат app/app.tsx и test/test.tsx то без указания путей я не могу сделать в app.tsx import Test from 'test/test'

Aleh
25.10.2016
12:40:27
хм
разве?

Dreamerinnoise
25.10.2016
12:40:35
Ну да

Oleg
25.10.2016
12:40:49
{
"compilerOptions": {
"experimentalDecorators": true,
"module": "commonjs",
"jsx": "react",
"target": "es6",
"baseUrl": "./src",
"paths": {
"*": [
"*"
]
},
"sourceMap": true
},

Aleh
25.10.2016
12:40:52
емнип node не ломал classic систему, а просто доавлял к ней node_modules

Dreamerinnoise
25.10.2016
12:41:18
Даже вебшторм это видит

Google

Dreamerinnoise
25.10.2016
12:41:20
и ругается

Oleg
25.10.2016
12:41:20
этого достаточно чтобы импортить все что в src абсолютными путями

Aleh
25.10.2016
12:41:26
вебшторм вот как арз не показатель

Dreamerinnoise
25.10.2016
12:41:37
вскод тоже :3

Aleh
25.10.2016
12:42:48
да, действительно не работает, значит если юзаете moduleResolution node, то надо все-таки прописывать paths

Глеб
25.10.2016
12:50:21
а как это должно работать?

Oleg
25.10.2016
12:51:06
ну IDE это второй вопрос. Компилится?

Глеб
25.10.2016
12:52:21
A:\source\monsterlab\octomafiabot>tsc
src/bb/maybe.ts(1,18): error TS2307: Cannot find module 'xx/okay'.
оп стопэ кажись заработало
ну компилятор не ругнулся
и скомпилил такое const okay_1 = require("xx/okay");
как бы для ноды путь не валидный всё равно

Глеб
25.10.2016
12:55:53
A:\source\monsterlab\octomafiabot>node bin\test.js
module.js:457 throw err; ^
Error: Cannot find module 'xx/okay'

Aleh
25.10.2016
12:56:43
ну здесь уже NODE_PATH можешь или babel plugin для aliases

Глеб
25.10.2016
12:57:46
а из коробки получается абсолютных путей в TS нету?

Aleh
25.10.2016
12:58:16
не совсем понимаю вопрос, но из контекста скажу, что само оно никак не делается)

Oleg
25.10.2016
12:58:19
я думаю что большинство вообще webpack-ом собирает
реактовые проекты
есть кто реактовые проекты без вебпака собирает?

Глеб
25.10.2016
12:59:31
webpack для бэкэнда как-то неочень, да там есть алиасы, но это нето..

Google

Глеб
25.10.2016
12:59:56
я тут в азур всё
это дело выливаю

Oleg
25.10.2016
13:00:29
ну если сервер для реакта - то норм ) я так делаю )

Dreamerinnoise
25.10.2016
13:00:55
вебпаку можно указать таргет и он не будет трогать встроенные модули
ну и externals

Глеб
25.10.2016
13:01:39
мне реакт не очень понравился, использую другие виртуальные думы вроде riot, чтоб верстальшикам было удобно работать с HTML, а не его реактовой разновидностью
ангуляр норм концепт, не был ток таким монстром
а абсолютные пути в тс для ноды не простая задача походу

Aleh
25.10.2016
13:04:51
ну, в твоем случае решишь для ноды = решишь для тс

Admin
ERROR: S client not available

Глеб
25.10.2016
13:05:24
хорошо, спасибо за наводку, подумаю

Yuri
25.10.2016
13:19:14
riot.js еще жив?

Глеб
25.10.2016
13:21:02
10 дней назад в мастер пуши, а есть что более быстрое для рендеринга темплейтов с ангуляроподобным синтаксисом?

Oleg
25.10.2016
13:21:47
??? есть кто реактовые проекты на TS без вебпака собирает?

Алексей
25.10.2016
13:21:53
во Flow нет Covariance / Contravariance ?

Yuri
25.10.2016
13:22:48
> а есть что более быстрое для рендеринга темплейтов с ангуляроподобным синтаксисом
не знаю, помню что смотрел их давно-давно, рад что живы

Vladimir
25.10.2016
13:31:51
> @Ai_boy
во Flow нет Covariance / Contravariance ?
Это в TS их нет
@chicoxyzzy кстати в окамле все таки с тредами как ты и говорил
но вроде что то пилят

Алексей
25.10.2016
13:46:01

Google

Vladimir
25.10.2016
13:49:10
Более того - в TS неправильный variance из коробки во всех сложных типах

Алексей
25.10.2016
13:50:17


Vladimir
25.10.2016
13:53:06
Контейнеры ковариантны - Array, Map, Set, хотя должны быть инвариантны
https://www.typescriptlang.org/play/index.html#src=%0Ainterface%20Foo%20%7B%0A%20%20%20%20foo()%3A%20void%0A%7D%0A%0Ainterface%20Bar%20%7B%0A%20%20%20%20foo()%3A%20void%2C%20%0A%20%20%20%20bar()%3A%20void%0A%7D%0A%0Afunction%20test(x%3A%20Array%3CFoo%3E)%20%7B%0A%20%20%20%20x%5B0%5D%20%3D%20%7B%20foo()%20%7B%20%7D%20%7D%3B%0A%7D%0A%0A%0Aconst%20arr%3A%20Array%3CBar%3E%20%3D%20%5B%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20foo()%20%7B%20%7D%2C%0A%20%20%20%20%20%20%20%20bar()%20%7B%20%7D%0A%20%20%20%20%7D%0A%5D%3B%0A%0A%0Aarr%5B0%5D.bar()%3B
Функции бивариантны относительно аргументов, хотя должны быть контрвариантны
https://www.typescriptlang.org/play/index.html#src=%0Ainterface%20Foo%20%7B%0A%20%20%20%20foo()%3A%20void%0A%7D%0A%0Ainterface%20Bar%20%7B%0A%20%20%20%20foo()%3A%20void%2C%20%0A%20%20%20%20bar()%3A%20void%0A%7D%0A%0Afunction%20test(x%3A%20Bar)%20%7B%0A%20%20%20%20x.bar()%3B%0A%7D%0A%0Aconst%20test1%3A%20(x%3A%20Foo)%20%3D%3E%20void%20%3D%20test%3B%0A%0Atest1(%7B%20foo()%20%7B%20%7D%20%7D)%3B


Андрей
25.10.2016
14:02:45
это увы так

Глеб
25.10.2016
14:33:14

Oleg
25.10.2016
15:30:35
радостная новость. typescript@next, который станет 2.1.0 умеет делать async/await в es5. От бабела можно будет избавиться
только что попробовали и убедились что все работает

Vladimir
25.10.2016
15:33:19
И как компилирует?

Nikita
25.10.2016
15:36:53
а это не важно))
Oleg а какой флаг включает?

Vladimir
25.10.2016
15:40:14
Наверняка все через жопу, как обычно

Nikita
25.10.2016
15:40:35
ну сходу точно не завелось

Oleg
25.10.2016
15:41:45
в compilerOptions "target": "es5”, “lib”: [“es5”, “”es2015.promise”]
все завелось сходу
npm install —save-dev typescript@next

Nikita
25.10.2016
15:43:20
index.ts(1,16): error TS1057: An async function or method must have a valid awaitable return type.
хз, по спеке это, или нет, но это отличается от поведения babel
ну лол, компилится оно в нечитаемую жесть, удачного дебага
target: es6 - наплевать. в чем проблема из babel скопипасть, не пойму?))