@typescript_ru

Страница 102 из 669
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
конкретно это работает и без baseUrl
orly? Option 'paths' cannot be used without specifying '--baseUrl' option.

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
> @Ai_boy во Flow нет Covariance / Contravariance ? Это в TS их нет
... в шоке (https://github.com/Microsoft/TypeScript/issues/1394)

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
а абсолютные пути в тс для ноды не простая задача походу
придумал хак "outDir": "./node_modules/app", "baseUrl": ".", "paths": { "app/*": [ "./app/*" ] } компилить и запускать в node_modules

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 скопипасть, не пойму?))

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