@typescript_ru

Страница 103 из 669
Nikita
25.10.2016
15:49:21
const test = async () => 123;

Vladimir
25.10.2016
15:49:28
пример, во что компилится

Nikita
25.10.2016
15:49:59
https://gist.github.com/nkt/fa34c28832800e48b2a008d59363239a

Alexander
25.10.2016
15:50:52
сорсмапы ftw

Google
Vladimir
25.10.2016
15:51:02
в бабеле примерно также

Dreamerinnoise
25.10.2016
15:51:10
угу

Nikita
25.10.2016
15:51:46
index.ts(8,3): error TS1308: 'await' expression is only allowed within an async function.

лол

ЛОЛ

function delay(time): Promise<void> { return new Promise((resolve) => { setTimeout(resolve, time); }) } function test() { await delay(500); console.log('done'); await delay(100); }

Vladimir
25.10.2016
15:52:16
?

Nikita
25.10.2016
15:52:21
в babel есть async-to-generator. В хроме и ноде спокойно с ним можно было жить

Vladimir
25.10.2016
15:52:35
Так в ТС также вроде?

Nikita
25.10.2016
15:52:53
TS нужно не функция возвращающая промис. нужна именно async функция

то есть все стандартное API идет с варнингами, минимум)

Vladimir
25.10.2016
15:53:34
нет

Nikita
25.10.2016
15:53:34
хотя

Google
Vladimir
25.10.2016
15:53:43
ты забыл async у test

Nikita
25.10.2016
15:53:55
ага, это я тупой))

https://gist.github.com/nkt/fa34c28832800e48b2a008d59363239a

ну это нереально дебажить почти)

Vladimir
25.10.2016
15:56:14
Да вроде не так плохо

Nikita
25.10.2016
15:56:26
http://babeljs.io/docs/plugins/transform-async-to-generator/

Vladimir
25.10.2016
15:56:29
__generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, delay(500)]; case 1: _a.sent(); console.log('done'); return [4 /*yield*/, delay(100)]; case 2: _a.sent(); return [2 /*return*/]; } });

Nikita
25.10.2016
15:56:30
а вот это можно

Vladimir
25.10.2016
15:56:41
Так в том и суть, проблема в генераторах

Nikita
25.10.2016
15:56:57
пояснишь проблему?

Vladimir
25.10.2016
15:57:16
Проблема в том чтобы скомпилировать генераторы в ES5

Nikita
25.10.2016
15:57:28
мне не надо es5

это должно работать иначе

Vladimir
25.10.2016
15:57:55
Так это и так в ТС работает при компиляции в ES6 вроде

Nikita
25.10.2016
15:58:01
async/await -> generators + helper -> switch-case + helper

ну я может настраивать не умею. { "target": "es2015", "lib": ["es5", "es2015.promise"] }

что в tsconfig еще добавить, чтобы в генераторы компилило

Dreamerinnoise
25.10.2016
16:00:26
es2015.generator ?

Nikita
25.10.2016
16:06:29
неа

Google
Nikita
25.10.2016
16:06:37
есть ощущение, что они target поломали

оно вообще не видит, что я его указываю

Oleg
25.10.2016
16:23:19
target es5

Дебажить надо с сорсмепами

Nikita
25.10.2016
16:45:46
@vkurchatkin а реально в пропсах компонентов дженерики писать?

если я список делаю, например?

Vladimir
25.10.2016
16:46:21
почему нет

Nikita
25.10.2016
16:52:11
https://flowtype.org/try/#0JYWwDg9gTgLgBAJQKYEMDGMA0cDecDCE4EAdkifAL5wBmURcA5FKhowNwBQnMAnmEjgAFemADOAHgAqAPjgBeXJzhxgMJCDEAuOFIDaAXUzK4AcyQwpagDZIdACjUadUgJQK5YmFGAlTnSm40axQxMTgAGWAvaTkkAA91EgATcMJiMgolFTBRbWE82K4VExYUpCh7dxwTFTRSL1xVdU1sc0sbQWpFGAALaIA6XIhxYpU4WrgWGABXKBI4e0mVCWTgADcZZfGcPsHh8QGnTQGQFDB7Rxb3eTl2qxhbK41XVwGAKwhfe0ZsRldAuNxhIAPRrTaTVwmQKUIA

куда дженерик совать не понятно)

а, понял. https://flowtype.org/try/#0JYWwDg9gTgLgBAJQKYEMDGMA0cDecDCE4EAdkifAL5wBmURcA5FKhowNwBQnMAnmEjgAFemADOAHgAqAPjgBeXJzhxgMJCDEAuOFIDaAXUzK4AcyQwpagDZIdACjUadUgJQK5YmFGAlTnSm40axQxMTgAGWAvaTkkAA91EgATcMJiMgoJADcIYGTsEQhxWOxc-LkcExYUpCh7dyqVFTRSL1xVdU1sc0sbQWpFGAALaIA6MFExLma4ExUWGABXKBI4e3nmiWTgbJlN2ZwR8cnisTGnTTGQFDB7Ry73eTleqxhbB41XVzGAKzySPZGNhGK5ArMVBIAPQ7PabVwmQKBTgSKLtS5ieQ4PQARmwACZsABmAzUV79LGOJ5yADK3l8piplChMiAA

Nikita
25.10.2016
17:26:30
да-да, я ошибся, уже выяснили)

Алексей
25.10.2016
17:26:58
Сори

Nikita
25.10.2016
17:27:01
а про target что скажешь? у меня не хочет es6/es2015. вообще не воспринимает

Алексей
25.10.2016
17:27:31
TS 2.1?

Nikita
25.10.2016
17:27:56
ага

Dreamerinnoise
25.10.2016
17:39:12
лучше объясните, вы css импортируете?

как приготовить, чтобы не ругался

Nikita
25.10.2016
17:39:27
TS?

Dreamerinnoise
25.10.2016
17:39:29
да

Google
Nikita
25.10.2016
17:40:21
хз, надо как-то подсунуть, что \.css$ -> {[key: string]: string}. В flow это так

Dreamerinnoise
25.10.2016
17:40:51
ну то есть чтобы он css модули распознал

Aleh
25.10.2016
18:52:18
лучше объясните, вы css импортируете?
у quramy есть пакет, который автоматом d.ts генерит

https://github.com/Quramy/typed-css-modules

правда я сам еще не юзал, но планирую)

Alexander
25.10.2016
18:53:25
у quramy есть пакет, который автоматом d.ts генерит
А я вот думаю, надо ли. Все равно это только классы покрывает.

Aleh
25.10.2016
18:54:24
ну вот и говорю, пока не юзал, а планирую)

ща погоняем ts2.1

Dreamerinnoise
25.10.2016
18:57:04
https://github.com/Microsoft/TypeScript/issues/6615 Я пробую через это

Admin
ERROR: S client not available

Dreamerinnoise
25.10.2016
18:57:11
Но что-то не взлетает

Aleh
25.10.2016
19:00:11
ругается на implicit any?

@gusnkt https://gist.github.com/6b1caa8ce5fbd65c8cc232a243844bce вот вроде ок скомпилило в es6

Dreamerinnoise
25.10.2016
19:02:38
ругается на implicit any?
Нет не может найти

Aleh
25.10.2016
19:03:26
@gusnkt https://gist.github.com/6b1caa8ce5fbd65c8cc232a243844bce вот вроде ок скомпилило в es6
оно и раньше в общем-то примерно так и компилило

Dreamerinnoise
25.10.2016
19:03:42
Aleh
25.10.2016
19:04:07
либы просто скопировались, без них по идее тоже без проблем

да, без них тоже все ок

там при es6 все эти либы указаны

Nikita
25.10.2016
19:06:08
Google
Nikita
25.10.2016
19:06:34
а TS не умеет рантайм импортировать?

Aleh
25.10.2016
19:07:01
а TS не умеет рантайм импортировать?
Вот нет, поэтому awaiter и decorate в каждом файле :/

Nikita
25.10.2016
19:07:16
ваще печалька)

Aleh
25.10.2016
19:07:19
Угу

Dreamerinnoise
25.10.2016
19:07:26
Это можно как-то вынести

Эти хелперы

Aleh
25.10.2016
19:07:34
Разве?

Dreamerinnoise
25.10.2016
19:07:48
Угу, я видел в одном стартере нг2 :D

Aleh
25.10.2016
19:08:00
Может они сами там подключают?)

Или типа если функцию так назвать, то тс не вставит свою?))

Dreamerinnoise
25.10.2016
19:09:55
Или типа если функцию так назвать, то тс не вставит свою?))
https://github.com/AngularClass/angular2-webpack-starter/blob/master/src/polyfills.browser.ts#L34

NOTE: Starting Typescript 2.1 this package won't be needed anymore Instead you can provide --importHelpers together with --noEmitHelpers which will import emit helpers from Typescript "tslib" More info: https://github.com/Microsoft/TypeScript/pull/9097

Aleh
25.10.2016
19:11:05
noEmitHelpers: true

вот я лошара)

Nikita
25.10.2016
19:11:58
лол))

Aleh
25.10.2016
19:12:01
Конечно норм вопрос почему по дефолту так не делать, но уже хорошо)

Nikita
25.10.2016
19:12:50
async function __awaiter() {}

угадайте, что TS выдает в аутпут?)

Dreamerinnoise
25.10.2016
19:13:20
Вангую хуиту

Nikita
25.10.2016
19:13:32
ну да, переименовывать он не умеет))

Aleh
25.10.2016
19:13:39
Сложна)

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