
n06rn
20.02.2018
04:17:24
решение здесь: https://github.com/Microsoft/TypeScript/issues/7657

Ivan
20.02.2018
18:30:57
Ребят, никто не знает как починить такое?
https://www.typescriptlang.org/play/index.html#src=const%20func%20%3D%20(x%2C%20y)%20%3D%3E%20x%20%2B%20y%3B%0D%0Aconst%20payload%20%3D%20%5B1%2C%202%5D%3B%0D%0Afunc(...payload)%3B

andretshurotshka?❄️кде
20.02.2018
18:40:12
странно что так не работает
const func = (x, y) => x + y;
const payload: [number, number] = [1, 2];
func(...payload);

Google

andretshurotshka?❄️кде
20.02.2018
18:40:21
они что зря добавили length для туплов?)

Ivan
20.02.2018
18:43:05
деструктуризация, видимо тупит

andretshurotshka?❄️кде
20.02.2018
18:43:16
в флоу все нормально

Ivan
20.02.2018
18:43:34
я туплю, или даже [number, number] не помогает?

andretshurotshka?❄️кде
20.02.2018
18:43:40
я про это и говорю
мы знаем длину
но это никак не помогает
бред)

Alex
20.02.2018
18:46:58
А какой для .ts более каноничный способ сочетания файлов и классов/интерфейсов в них?
1. как в Java: 1 класс - 1 файл
2. не как в Java

???????? ⚰
20.02.2018
18:59:57

Дмитрий
20.02.2018
19:00:12
Хороший повод так не делать

Google

Дмитрий
20.02.2018
19:00:58
Фронт всегда находится в значительно более ограниченных рамках по ресурсам, поэтому гигантские джава-классы не оч

Alex
20.02.2018
19:02:27
Ну вот хз.
В Java-мире, где один класс меньше сотни строк занимать не может со всеми своими геттерами и сеттерами - понятно.
А в TS - у меня три интерфейса и два типа ошибок прекрасно в 50 строк входят. И пилить их на части наводит меня на мысли, что придётся носится по всем файлам в проекте

Константин
20.02.2018
19:03:27

andretshurotshka?❄️кде
20.02.2018
19:07:55
и как он их складывает если они опциональные
c strictNullChecks не работает

Alex
20.02.2018
19:09:30

andretshurotshka?❄️кде
20.02.2018
19:14:25
https://github.com/gcanti/typelevel-ts/blob/master/src/index.ts#L201 это?)
у таплов и так length известен
это баг просто

Ivan
20.02.2018
19:17:34

Alex
20.02.2018
19:18:47

Константин
20.02.2018
19:19:19

andretshurotshka?❄️кде
20.02.2018
19:19:35
ну это дичь)
лучше заигнорить тогда

Глеб
21.02.2018
09:11:26
const factory = <T>(classObj)=>new classObj() as T
factory<Kitten>(Kitten)
привет всем
а можно два раза Kitten не писать?
и чтоб автокомплит работал

?????∞?
21.02.2018
09:12:57

andretshurotshka?❄️кде
21.02.2018
09:13:19
const factory = <T>(classObj: { new(): T })=>new classObj()
factory(Kitten)

Сергей
21.02.2018
09:13:33

Глеб
21.02.2018
09:13:49

Google

Глеб
21.02.2018
09:31:06
ну я тут увидел как typegoose поломался и подумал ну его нафиг… запил такую штуку
//banded mongoose
export const bm ={
Number: (params={})=>Object.assign({type:Number},params) as any as number,
String: (params={})=>Object.assign({type:String},params) as any as string,
Array: <T>(type)=>[[type]] as any as T[],
schema: <T>(classObj: { new(): T })=>new Schema(new classObj() as any) as any as T,
}
вроде супер, typegoose терь не нужен будет
Array: <T>(type)=>[[type]] as any as T[],
массивы только ещё дублируют класс
providers = bm.Array<string>(String)
быть может и тут кто видит решение как сократить Т

D
21.02.2018
09:40:40
Также как и выше тебе подсказали, или в чем проблема?

Глеб
21.02.2018
09:44:34
выше про другое а тут наверное не получится
если String не прокатит за string
тут не вызывается new
ну проблемы особой нет, просто задачка

Oleg
21.02.2018
09:57:47
Вопрос, у меня есть интерфейс кастомного Request'a который наследует 2 других интерфейса (Express -> Request и express-validator -> Validator), но в результате я получаю ошибку Property 'sanitizeBody' does not exist on type 'RequestInterface'
Код интерфейса
import { Request } from 'express';
import { Validator } from 'express-validator/shared-typings';
interface RequestInterface extends Request, Validator {
user?: any;
}
export default RequestInterface;
Есть идеи как заставить это работать?

Aleh
21.02.2018
10:07:16
ну и да, классов может не быть совсем, но это на опытных любителей потяжелее

Oleg
21.02.2018
10:22:11
Вопрос решен. Мой интерфейс Request наследовал не тот интерфейс Валидатора

Глеб
21.02.2018
11:11:52

Kelin
21.02.2018
11:12:35
Любители вебшторма должны страдать

Глеб
21.02.2018
11:12:59
ну я идею с пелёнок люблю просто
тут не WS причина

Google

Eugene
21.02.2018
11:17:09
Что не так с вебштормом

Глеб
21.02.2018
11:20:13
типа n без типа

Aleh
21.02.2018
11:21:14
там в настройках можно включить интеграцию с tsserver

Глеб
21.02.2018
11:22:21

Aleh
21.02.2018
11:23:19
тогда хз(

Глеб
21.02.2018
11:24:03
а!! всё ломает автоимпорт WS
добавляет наверху
import Number =
а так всё отлично, спасибо всем

Alex
21.02.2018
11:24:33

Max
21.02.2018
13:02:08
Ребята, как в TS перегрузить тип или интерфейс?

Andrey
21.02.2018
13:03:51
Что такое "перегрузка типа"?

Max
21.02.2018
13:05:41

Andrey
21.02.2018
13:06:09

Max
21.02.2018
13:06:34

Andrey
21.02.2018
13:06:44
Второе.

Andrew
21.02.2018
13:08:26

kana
21.02.2018
13:09:16

Max
21.02.2018
13:09:16

kana
21.02.2018
13:09:22
первый - forall
второй - exist
type F a = a
это не
type F = (forall a. a)

Max
21.02.2018
13:10:27
Второе.
тогда у аргумента при Foo<‘FOO’> тип ‘FOO’ | undefined , не катит

Google

Andrew
21.02.2018
13:11:04
У меня кстати и твой оригинальный вариант тоже работает
https://www.typescriptlang.org/play/index.html#src=interface%20IFoo%20%7B%0A%20%20%20%20(greeting%3A%20string)%3A%20void%3B%0A%20%20%20%20%3CT%3E(greeting%3A%20string%2C%20extra%3A%20T)%3A%20void%3B%0A%7D%0A%0Ainterface%20IFoo2%3CT%3E%20%7B%0A%20%20%20%20(greeting%3A%20string)%3A%20void%3B%0A%20%20%20%20(greeting%3A%20string%2C%20extra%3A%20T)%3A%20void%3B%0A%7D%0A%0A(%7B%7D%20as%20IFoo)('a'%2C%201)%3B%0A(%7B%7D%20as%20IFoo2%3Cnumber%3E)('a'%2C%201)%3B
Может у тебя старая версия тайпскрипта?