@typescript_ru

Страница 505 из 669
Dmitrii
17.02.2018
15:07:05
https://github.com/piotrwitek/react-redux-typescript-guide/blob/master/playground/src/redux/root-action.ts что значит type AppAction = typeof returnsOfActions[number]; ?

кажется понял, что-то вроде type AppAction = typeof returnsOfActions[0] | typeof returnsOfActions[1] | ... | typeof returnsOfActions[returnsOfActions.length - 1]. т.е. пройтись по всем элементам массива и объединить их через Union

andretshurotshka?❄️кде
17.02.2018
15:16:53
давно надо было изучить весь typelevel-ts и typical

?

Google
Dmitrii
17.02.2018
15:17:34
typelevel-ts я хотя бы доку смог прочитать кое-как

andretshurotshka?❄️кде
17.02.2018
15:19:40
а typical?)

Dmitrii
17.02.2018
16:58:03
пока не осилил

тяжёлые наркотики

Sunlive
17.02.2018
18:54:10
без них в тс никуда походу

Aram
17.02.2018
22:00:11
Господа, кто-нибудь сталкивался с чем-то подобным? TS2686: 'React' refers to a UMD global, but the current file is a module. Consider adding an import instead.

мне бы не помешал небольшой ликбез почему TS не хочет кушать import React from 'react';

Aram
17.02.2018
22:10:11
import * as React from 'react'
да, но почему?

Cenator
17.02.2018
22:10:35
Вроде чтобы тайпинги подтянулись или типо того (с дивана заявляю)

Aram
17.02.2018
22:10:58
мне не дает покоя такая гадкая запись

Google
Morsik
17.02.2018
22:12:03
а

нет, я вру

у меня там не тс

Aram
17.02.2018
22:12:19
allowSyntheticDefaultImports
у меня стоит true

Bogdan
17.02.2018
22:48:49


как мне импортировать Dropbox?

Aram
17.02.2018
23:13:18
как мне импортировать Dropbox?
import { Dropbox } from 'path/to/module/dir'

Так не работает?

Bogdan
17.02.2018
23:14:30
пишет что импортируемая сущность не модуль

Aram
17.02.2018
23:14:55
А, стоп

Убери default

Bogdan
17.02.2018
23:16:31
а чтоб не убирать? это с нпм либа

Aram
17.02.2018
23:18:08
Какой код ошибки?

Bogdan
17.02.2018
23:19:17
с утра уже разбираться буду

kana
17.02.2018
23:39:16
мне не дает покоя такая гадкая запись
ну по факту эта запись намного лучше

* as x явно говорит о том, что импортируй все в x в реакте просто почему-то дефолтным экспортом сделали объект со всем, что импортируется, но так мало кто делает

ну и один шажок в сторону идеального мира без дефолтных экспортов

Cenator
17.02.2018
23:41:09
ну и один шажок в сторону идеального мира без дефолтных экспортов
а какой в этом смысл если все равно можно переименовать?

Google
kana
17.02.2018
23:41:43
смысл в том, что (* as x) намного явнее говорит о том, что делает импорт

то есть для десяти либ и своих модулей мы используем * as, то логично использовать и для 11-ой

но с реактом все привыкли просто

думаю, в одном из следующих мажоров они скажут делать только * as

а дефолтный объект задепрекейтят, вместо него компонент например будет, или createElement, так как объект - это скорее легаси с commonjs

Cenator
17.02.2018
23:43:54
хм интересно

Дмитрий
18.02.2018
00:13:20
ну по факту эта запись намного лучше
Спека найдёт чем удивить) import React, * as Lol from 'react'

Max
18.02.2018
00:41:55
Вроде чтобы тайпинги подтянулись или типо того (с дивана заявляю)
там экспорт у модулей видать через module.exports сделан

Bogdan
18.02.2018
07:29:16
Что такое ECMAScript target version? Это версия языка из которой тс будет понимать фичи или версия языка в которую будет компилироваться код?

SilencerWeb
18.02.2018
09:06:13
Почему может не находить компонент? В .env указал NODE_PATH = src/ С файлами с расширением jsx все работало, с tsx - нет, но там я юзал CRA, а тут CRAT(create-react-app-typescript)

Импорт: import { App } from 'containers/app/app’; Ошибка: http://prntscr.com/igbznp



Kelin
18.02.2018
09:09:48
import { Dropbox } from 'path/to/module/dir'
Это не деструктуризация, а он экспортит объект

Bogdan
18.02.2018
10:42:28


это че норма?

Andrey
18.02.2018
10:43:39
Нет.

Andrew
18.02.2018
12:24:04


Friedrich
18.02.2018
12:29:47
да, но почему?
Потому что import * это стандартный ES6-синтаксис. Если React описан как ES6-модуль — значит, его надо так импортировать.

Max
18.02.2018
12:52:16
да, но почему?
потому что, по идее, ES6 модули несовместимы с CommonJS модулями.

Google
Sunlive
18.02.2018
14:51:31
как нормально интерфейсы экспортить? у меня вскод ругается постоянно если я добавил новый интерфейс в файл и экспортнул его, пишет что такого типа нет, но при этом сами тайпинги применяются Оо, помогает только закрыть открыть проект

экспорчу export interface IFoo {} ну и соотвт import { IFoo } from '../foo'

andretshurotshka?❄️кде
18.02.2018
15:39:31
странно

Dmitrii
18.02.2018
15:52:52
а this.constructor.staticMethod() не работает?

andretshurotshka?❄️кде
18.02.2018
16:00:04
нет

у конструктора тип Function

где-то висит issue, хз почему не фиксят

Sunlive
18.02.2018
16:02:29
ясн

Dmitry
19.02.2018
09:09:34
Всем привет. Друзья, помогите пожалуйста понять тип never? Прочитав доку, я всё же не понял до конца, когда он подойдёт. В примерах представлены ф-ции генерирующие или обрабатывающие ошибки. Но тем ни менее, не понятно, когда он подойдёт лучше всего.

Vladimir
19.02.2018
09:16:08
Друзья, есть модуль в commonjs, есть к нему тайпинги через export=Name, насколько пррочитал в доках, рекомендованный способ импортировать такой модуль - import foo = require('foo') подскажите, как должны тайпинги выглядеть, чтобы можно было import foo from 'foo' использовать?

ENAMETOOLONG
19.02.2018
09:16:10
1 случай, Error Throwing, 2 случай, ф-ции никогда ничего не возращающие

Kirill
19.02.2018
09:50:01
Можно ли как-то указывать для tsc параметр includes? tsconfig меня не устраивает так как у меня includes меняется динамически.

Dmitry
19.02.2018
10:28:44
Используешь для функций которые могут выбрасывать ошибки, просто объявляешь что код дальше нее может не пойти
Моё знание английского меня подвело. Не смог правильно понять текст, прочёл перевод страницы о типах и всё стало ясно.

Спасибо.

Google
Кирилл
19.02.2018
15:30:59
Привет парни )) подскажите пожалуйсто как чекнуть является ли элемент класса Observable mobx обектом из коробки есть isObservable() но он не умее работь с примитивами @observable contactName = ''; @observable forcePasswordChange; @observable isVerified = false; @observable kycComment = null;

Кирилл
19.02.2018
17:50:45
Или я не так вопрос понял?
кажется поенл в чем дело

я не так его использовал

Nameless
19.02.2018
18:56:26
Вечер добрый, кто подскажет каким ображом можно преобразовать enum в string[]?

Надо что-то типо этого: enum x{ bla, bl, lb} Преобразовать в str[0] = "bla"; str[1] = " bl"; ...

D
19.02.2018
18:58:58
Уже есть стринговые енумы в ТС

n06rn
20.02.2018
03:32:47
а подскажите, куда можно выложить код, чтобы видеть подсветку ошибок?

Mykola
20.02.2018
03:50:00
n06rn
20.02.2018
03:54:13
На твой вкус https://www.slant.co/topics/713/~best-cloud-ides
хм, в принципе и на оф. страничке тайпсприпта ошибки подсвечиваются

Подскажите, что можно сделать в это случае. var a: { b: number | null, c?: number | null, }[] = [ {b: 1, c: 1}, {b: null, c: 2}, {b: 2}, ] ; const b: { b: number, c: number }[] = a.filter( ({ b, c }) => b !== null && c !== null ); вот работающий пример https://www.typescriptlang.org/play/index.html#src=var%20a%3A%20%7B%0D%0A%20%20b%3A%20number%20%7C%20null%2C%0D%0A%20%20c%3F%3A%20number%20%7C%20null%2C%0D%0A%7D%5B%5D%20%3D%20%5B%0D%0A%20%20%7Bb%3A%201%2C%20c%3A%201%7D%2C%0D%0A%20%20%7Bb%3A%20null%2C%20c%3A%202%7D%2C%0D%0A%20%20%7Bb%3A%202%7D%2C%0D%0A%5D%20%3B%0D%0A%0D%0Aconst%20b%3A%20%7B%0D%0A%20%20b%3A%20number%2C%20c%3A%20number%0D%0A%7D%5B%5D%20%3D%20a.filter((%7B%20b%2C%20c%20%7D)%20%3D%3E%20b%20!%3D%3D%20null%20%26%26%20c%20!%3D%3D%20null)%3B

проблема в том, что filter возращает тип описанный в b

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