
Dmitry
12.10.2017
09:51:59
если в группе интересно это - то можем потом публикануть

andretshurotshka?❄️кде
12.10.2017
09:52:34

Dmitry
12.10.2017
09:53:48
смотрели) Но этот велосипед не устроил по ряду причин

Andrey
12.10.2017
09:54:29
А что не так с, собственно, экспрессом?

Google

Dmitry
12.10.2017
09:55:24

Дмитрий
12.10.2017
09:55:44

Михаил
12.10.2017
09:56:37
да, коа 2 ваще крутая штука, в отличии от express

Mike
12.10.2017
09:59:05
Какую ide вы используете для typescript?
▪️ 48% (80) VsCode
▫️ 36% (61) WebStorm
▪️ 3% (6) Visual Studio
▫️ 1% (3) emacs
▪️ 2% (4) vim
▫️ 1% (2) nano
▪️ 3% (5) Sublime Text
▫️ 1% (2) atom
▪️ 0% (1) notepad++
▫️ 1% (2) Не пишу на typescript!
?Mike Busyrev
? You can select options: 3
? 166 (148) - gross votes
Предлагайте варианты в own variant они мне на аппрув придут, я всё добавлю
@chicoxyzzy можешь закрепить?

andretshurotshka?❄️кде
12.10.2017
10:03:09
@ide_ru
есть же норм чат

Aleh
12.10.2017
10:04:13

Mike
12.10.2017
10:04:25


=_=
12.10.2017
10:04:57
Привет
поясните по ts непоняточку пожалуйста
вот из документации про type inference
Type inference also works in “the other direction” in some cases in TypeScript. This is known as “contextual typing”. Contextual typing occurs when the type of an expression is implied by its location. For example:
`window.onmousedown = function(mouseEvent) {
console.log(mouseEvent.button); //<- Error
};
`
For the code above to give the type error, the TypeScript type checker used the type of the Window.onmousedown function to infer the type of the function expression on the right hand side of the assignment. When it did so, it was able to infer the type of the mouseEvent parameter. If this function expression were not in a contextually typed position, the mouseEvent parameter would have type any, and no error would have been issued.
If the contextually typed expression contains explicit type information, the contextual type is ignored. Had we written the above example:
почему они пишут что здесь ошибка какая-то должна быть
ведь на mouseEvent есть проперти button
https://www.typescriptlang.org/docs/handbook/type-inference.html#contextual-type


Mikhail
12.10.2017
10:06:31

Дмитрий
12.10.2017
10:07:36
Типизация на сервере не менее полезна чем на клиенте

Google

Дмитрий
12.10.2017
10:08:29
Если ставить вопрос как plain js или ts, то тут даже сомнений нет (хотя что я сам выбираю думаю все уже в курсе)

Artur
12.10.2017
10:09:37
https://www.typescriptlang.org/play/index.html#src=window.onmousedown%20%3D%20function(mouseEvent)%20%7B%0A%20%20%20%20console.log(mouseEvent.button)%3B%20%20%2F%2F%3C-%20Error%0A%7D%3B


=_=
12.10.2017
10:12:04
Ну у меня тоже нет
Ошибки

Artur
12.10.2017
10:14:39
Кстати, а есть возможность запретить оператор as?

Andrii
12.10.2017
10:15:17
Да что ж вам всем всё запретить хочется?

Artur
12.10.2017
10:15:27
Например такой кейс:
const a = "blabla"
const b: "ccc" = a as "ccc"
для any есть no-any в tslint, а вот для as ничего не нашёл

Andrii
12.10.2017
10:16:03
Не чат, а госдума РФ

Александр
12.10.2017
10:16:16

Kirill
12.10.2017
10:55:50
Битва началась.

Иван
12.10.2017
10:58:01

Mike
12.10.2017
10:58:09


=_=
12.10.2017
10:59:44
Сначала

Max
12.10.2017
11:00:16
да начнется срач

=_=
12.10.2017
11:00:29

Иван
12.10.2017
11:00:54

Google

Mike
12.10.2017
11:01:39
да, тогда там косяк

Иван
12.10.2017
11:02:18
возможно есть варианты подстройки vs code для с#? но постоянно руки не доходят

Mike
12.10.2017
11:03:02
поддержка C# один из самых популярных плагинов в маркетплейсе

Дмитрий
12.10.2017
11:03:59

Иван
12.10.2017
11:05:16

Igor
12.10.2017
11:25:01

Иван
12.10.2017
11:25:56

Andrey
12.10.2017
12:05:10
Можно ли наложить констрейнт на тип свойства при использовании keyof? Говоря условно,
function getProperty<T, K extends keyof T>(obj: T, key: K) where T[K]: string {
return obj[key];
}
.
Не могу придумать какой-нибудь воркэраунд красивый

Aleh
12.10.2017
12:11:32
несовсем понятен кейс, далее если ты юзаешь как строку результат, то тс проверит это

Andrey
12.10.2017
12:13:02
Да, пример я взял короткий, мой кейс немного сложнее. Представим, что мне нужно сделать валидатор для строковых значений, в который я хочу передавать модель и некоторое название строковой проперти в этой модели — как мне это выразить?

Aleh
12.10.2017
12:13:32

Andrey
12.10.2017
12:19:33
Неплохо, спасибо!

Mike
12.10.2017
12:21:15
это же не позволяет нихнуть туда объект с полями не строками

Andrey
12.10.2017
12:21:43
Позволяет, не позволяет передать не-строковую проперти. Я проверил.

Mike
12.10.2017
12:22:20
https://www.typescriptlang.org/play/index.html#src=type%20WithStringKey%3CK%20extends%20string%3E%20%3D%20%7B%0D%0A%20%20%20%20%5BP%20in%20K%5D%3A%20string%0D%0A%7D%0D%0A%0D%0Afunction%20f%3CK%20extends%20string%2C%20T%20extends%20WithStringKey%3CK%3E%3E(o%3A%20T%2C%20key%3A%20K)%3A%20T%5BK%5D%20%7B%0D%0A%20%20%20%20return%20o%5Bkey%5D%0D%0A%7D%0D%0A%0D%0A%0D%0Aclass%20TestClass%20%7B%20%0D%0A%20%20%20%20public%20strProp%3A%20string%3B%0D%0A%20%20%20%20public%20numProp%3A%20number%3B%0D%0A%7D%0D%0A%0D%0A%0D%0Alet%20obj%20%3D%20new%20TestClass()%3B%0D%0A%0D%0Af(obj%2C%20'qq')%3B%0D%0A
оно требует чтоб весь объект только строки имел в значениях

Aleh
12.10.2017
12:22:53

Mike
12.10.2017
12:23:15
а почему тогда не работает?

Google

Mike
12.10.2017
12:23:58
а сорри
не в ту сторону проверка. невнимателе был
да, это то что нужно

Aleh
12.10.2017
12:24:12
а почему тогда не работает?
https://www.typescriptlang.org/play/index.html#src=type%20WithStringKey%3CK%20extends%20string%3E%20%3D%20%7B%0D%0A%20%20%20%20%5BP%20in%20K%5D%3A%20string%0D%0A%7D%0D%0A%0D%0Afunction%20f%3CK%20extends%20string%2C%20T%20extends%20WithStringKey%3CK%3E%3E(o%3A%20T%2C%20key%3A%20K)%3A%20T%5BK%5D%20%7B%0D%0A%20%20%20%20return%20o%5Bkey%5D%0D%0A%7D%0D%0A%0D%0Aconst%20o%20%3D%20%7B%0D%0A%20%20%20%20a%3A%20%22%22%2C%0D%0A%20%20%20%20b%3A%201%2C%0D%0A%20%20%20%20c%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20a%3A%20%221%22%2C%0D%0A%20%20%20%20%20%20%20%20b%3A%201%0D%0A%20%20%20%20%7D%0D%0A%7D%0D%0A%0D%0Af(o%2C%20%22a%22)%0D%0Af(o.c%2C%20%22a%22)%0D%0Af(o%2C%20%22b%22)

andretshurotshka?❄️кде
13.10.2017
06:29:02
Uncle Bob

Herman
13.10.2017
06:58:03
Сори за оффтоп, пишу от безысходности. Может кто сайт подсказать, где бы по запросу(английский инфинитив) выводилось его 3 формы с их транскрипцией?

MadMax
13.10.2017
07:57:26
Ребят, помогите пжалусто.. Не могу понять что за чушь
export interface UserModel {
firstName: string;
lastName: string;
email: string;
phone: string;
status: number;
role: string;
password: string;
}
У меня есть интерфейс
public newUser: UserModel = {
email: '',
firstName: '',
lastName: '',
role: 'user',
status: 1,
phone: '',
password: ''
};
есть переменная...
А мне ругаются
Object literal may only specify known properties, and 'lastName' does not exist in type 'UserModel'.


Олег
13.10.2017
08:00:41
А мне ругаются
Object literal may only specify known properties, and 'lastName' does not exist in type 'UserModel'.
https://www.typescriptlang.org/play/#src=export%20interface%20UserModel%20%7B%0D%0A%20%20firstName%3A%20string%3B%0D%0A%20%20lastName%3A%20string%3B%0D%0A%20%20email%3A%20string%3B%0D%0A%20%20phone%3A%20string%3B%0D%0A%20%20status%3A%20number%3B%0D%0A%20%20role%3A%20string%3B%0D%0A%20%20password%3A%20string%3B%0D%0A%7D%0D%0A%0D%0Aconst%20newUser%3A%20UserModel%20%3D%20%7B%0D%0A%20%20%20%20email%3A%20''%2C%0D%0A%20%20%20%20firstName%3A%20''%2C%0D%0A%20%20%20%20lastName%3A%20''%2C%0D%0A%20%20%20%20role%3A%20'user'%2C%0D%0A%20%20%20%20status%3A%201%2C%0D%0A%20%20%20%20phone%3A%20''%2C%0D%0A%20%20%20%20password%3A%20''%0D%0A%20%20%7D%3B

MadMax
13.10.2017
08:06:12
Все же работает?

Олег
13.10.2017
08:06:58
да, все работает.

MadMax
13.10.2017
08:07:18
А с чего базарит?

Олег
13.10.2017
08:07:52
UserModel значит не тот

MadMax
13.10.2017
08:08:43
Он у меня только один...
Сейчас вообще в другом месте файл изменил... Перекомпилировалось, уже без ошибки...
Ничерта не трогая...
@dersizes Большое спасибо