@typescript_ru

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

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

есть же норм чат

Mike
12.10.2017
10:04:25
а где vim(
добавь сам

=_=
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

Дмитрий
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
Какую 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
visual studio совсем для этого не предназначена... но к сожалению приходится использовать именно её... когда почти не нужно бэк-енда, или поддержка typescript совсем уж вымораживает преключаюсь vs code

Mike
12.10.2017
10:58:09
Привет поясните по 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
с точки зрения ts в конструкции window.onmousedown = function(mouseEvent) { console.log(mouseEvent.button); //<- Error }; нет типизации никакой и на объекте mouseEvent запрещено звать что угодно, ели ты сам указываешь что оно any то так можно

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

=_=
12.10.2017
11:00:29


Иван
12.10.2017
11:00:54
а что заставляет тебя сидеть на большой sv?
ну как бы делаю вид, что я full-stack, а бэк-енд у нас на с#

Google
Mike
12.10.2017
11:01:39
Ты бы прочитал про inference
сорри не углядел

да, тогда там косяк

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

Mike
12.10.2017
11:03:02
возможно есть варианты подстройки vs code для с#? но постоянно руки не доходят
https://marketplace.visualstudio.com/search?target=VSCode&category=All%20categories&sortBy=Downloads

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

Иван
12.10.2017
11:05:16
поддержка C# один из самых популярных плагинов в маркетплейсе
надо будет посмотреть... но, как я уже исказал, постоянно не доходят руки

Igor
12.10.2017
11:25:01
надо будет посмотреть... но, как я уже исказал, постоянно не доходят руки
Спойлер: легаси проект на 100kloc он не потянет и если ты привык к решарперу, то там нет такой поддержки

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

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

оно требует чтоб весь объект только строки имел в значениях

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

Олег
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 Большое спасибо

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