@typescript_ru

Страница 232 из 669
Ivan
17.05.2017
08:27:16
типа добавить метод прямо в кложуру )

Max
17.05.2017
08:27:34
во

interface RaterAPIServiceMock extends RaterAPIService { getWidgetsToRaterFieldsMapping: any }

Ivan
17.05.2017
08:27:41
хотя, если посмотреть как кложура определена, может там есть какой-то нормальный тип?

Google
Ivan
17.05.2017
08:27:43
ААА

Max
17.05.2017
08:27:43
const API = RaterAPIService as RaterAPIServiceMock API.getWidgetsToRaterFieldsMapping = jest.fn() API.getWidgetsToRaterFieldsMapping.mockReturnValue(mapping)

Ivan
17.05.2017
08:27:45
подожди

лучше есть

mapped types!!!

попробуй mapped types поюзать )

Aleh
17.05.2017
08:28:10
Да, у нас как раз через mapped

Ivan
17.05.2017
08:28:16
сорри, мне идти надо. посмотри короче штуки как public<T> или типа того, там можно такое же сделать

Max
17.05.2017
08:28:20
щас погуглю что это такое

> transforms each property in the old type in the same way

т.е получается что все методы будут any

и автокомплит сломается

так?

Google
Max
17.05.2017
08:31:54
для остальных методов

ну новый интерфейс норм короче )

завоверрайдил только то что надо мне )

Aleh
17.05.2017
08:35:06
Не

Ща покажу

и автокомплит сломается
type FunctionStub = Sinon.SinonStub type Stubbed<S> = { [K in keyof S]: S[K] & FunctionStub } & S

Max
17.05.2017
08:52:19
хм, проверю

еще вопрос ` componentDidMount() { this.props.dispatch(loadAvailableFieldNames()) } `

` export function loadAvailableFieldNames() { return async (dispatch: any, getState: GetState) => { const { url, fileId, worksheet } = getState().rater.settings const fieldnames = await RaterAPIService.getAvailiableFieldNames(url, fileId, worksheet) dispatch(setAvailableFieldNames(fieldnames)) } } `

Aleh
17.05.2017
08:52:41
Max
17.05.2017
08:52:47
первый ругается на ERROR in [at-loader] ./src/views/Editor.tsx:27:29 TS2345: Argument of type '(dispatch: any, getState: GetState) => Promise<void>' is not assignable to parameter of type 'Action'. Property 'type' is missing in type '(dispatch: any, getState: GetState) => Promise<void>'.

Aleh
17.05.2017
08:52:52
sinon меняешь на нужное

Max
17.05.2017
08:53:01
и в тесте let videoCallSession: Stubbed<VideoCall>
ага, записал, вечером попробую

щас надо функционал выкатить

Max
17.05.2017
08:54:34
as any?

:)

Aleh
17.05.2017
08:55:18
ну я б его нормально для thunk типизировал, это ж не сложно

Max
17.05.2017
08:55:46
это вообще или мне предлагаешь? )

Nikolay
17.05.2017
12:06:30


Google
Nikolay
17.05.2017
12:06:44
Товарищи, помогите разобраться. Хочу реализовать асинхронную подгрузку модуля при помощи require.ensure. Не понятен такой момент: Как правильно объявить интерфейс для moment?

Vladimir
17.05.2017
12:07:12
мб dynamic import?

Nikolay
17.05.2017
12:08:16
мб dynamic import?
это лучше чем require.ensure?

Nikolay
17.05.2017
12:31:28
Спасибо. Такое же решение нашел и тут https://github.com/Lemoncode/react-typescript-samples/blob/master/16%20Lazy%20Loading/src/index.tsx

Сергей
17.05.2017
12:59:13
Всем привет

у меня в ts проекте есть lib/some_plugin.js

как правильно для него тайпинги написать?

чтобы я мог import Some from '../lib/some_plugin' ?

Aleh
17.05.2017
13:00:03
lib/some_plugin.d.ts

Сергей
17.05.2017
13:00:18
пишет is not a module

Сергей
17.05.2017
13:00:24
а внутри declare module?

Aleh
17.05.2017
13:00:25
в нем export default class Some {}

Сергей
17.05.2017
13:00:45
о

ларчик просто открывался

спасибо

Mike
17.05.2017
13:03:19
смотрите, что бывает https://github.com/ToCSharp/TypeScriptAST

Сергей
17.05.2017
13:05:00
в нем export default class Some {}
а если это жс апдейтит window?

и добавляет свою переменную

Google
Aleh
17.05.2017
13:05:38
а если это жс апдейтит window?
тогда тебе надо в глобальных декларациях расширить интерфейс Window

Сергей
17.05.2017
13:05:59
и туда уже свои расширяки?

Aleh
17.05.2017
13:06:16
да, просто interface Window { yourVar: VarType }

Сергей
17.05.2017
13:06:20
благодарю

Aleh
17.05.2017
13:06:41
либо же declare var yourVar: VarType, зависит от того, как юзать будете

Сергей
17.05.2017
13:07:27
ts умеет в генераторы?

Aleh
17.05.2017
13:07:36
да

Admin
ERROR: S client not available

Aleh
17.05.2017
13:07:45
2.3 даж асинхронные умеет)

Сергей
17.05.2017
13:08:26
как это описать в тайпингах?))

Aleh
17.05.2017
13:08:30
что именно?

Сергей
17.05.2017
13:08:32
у меня функция принимает генератор

Aleh
17.05.2017
13:08:42
Iterator

Сергей
17.05.2017
13:10:08




ужс

я хз как для этой херни тайпинги писать

andretshurotshka?❄️кде
17.05.2017
13:13:37
лол

Сергей
17.05.2017
13:14:06
так-то понятно. Но это ж пздц...

Google
Artur
17.05.2017
13:14:08
я хз как для этой херни тайпинги писать
Строгая типизация как раз заставляет писать нормальный код, а не это то что выше

Сергей
17.05.2017
13:14:36
Строгая типизация как раз заставляет писать нормальный код, а не это то что выше
меня подмывает переписать весь код стороннего плагина на нормальный TS

Aleh
17.05.2017
13:14:36
это своя реализация async-await/co?

Сергей
17.05.2017
13:14:45
только времени переписывать нет, как обычно должно быть готово вчера

Aleh
17.05.2017
13:15:47
так выкинь и поставь co

ну или bluebird.coroutine

Сергей
17.05.2017
13:17:49
короче это плагин для CryptoPro BrowserPlugin

Anton
17.05.2017
13:18:54
Сейчас раздают бесплатную книжку по TS https://www.packtpub.com/packt/offers/free-learning

Narek
17.05.2017
13:19:49
Лол, а чем просто design patterns отличается от TypeScript design patterns

Aleh
17.05.2017
13:20:21
придется скачать и посмотреть, чтобы найти разницу)

Narek
17.05.2017
13:20:38
подозреваю, что ничем

Aleh
17.05.2017
13:20:40
зайлете сюда плиз, а то лень регаться

Сергей
17.05.2017
13:21:03
Aleh
17.05.2017
13:21:55
даж вот так сделаю)

Narek
17.05.2017
13:22:35
лол))

Сергей
17.05.2017
13:22:51
спасибо!

Aleh
17.05.2017
13:23:05
там еще про typings :)

Anton
17.05.2017
13:23:20
TypeScript Design Patterns

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