@typescript_ru

Страница 137 из 669
Vadim
21.12.2016
11:13:22
Ок, спасибо! Никогда бы не подумал о связи )))

.
21.12.2016
12:00:36
Какой конфиг для tslint самый топ?

Alexander
21.12.2016
13:18:15
Надо портировать eslint-plugin-no-js

Vasiliy
21.12.2016
14:21:48
если положить types.d.ts с описанием типов, то эти типы видны во всех нижележащих по иерархии файлах

Google
Vasiliy
21.12.2016
14:22:13
вопрос: делает ли так кто-нибудь? насколько часто вы этим пользуетесь? если нужно просто пошарить типы, то куда вы их выносите? не создаете ли по файлу на интерфейс/тип как в java & c#?) и я не помню задавал ли уже этот вопрос)

Aleh
21.12.2016
14:25:31
вопрос: делает ли так кто-нибудь? насколько часто вы этим пользуетесь? если нужно просто пошарить типы, то куда вы их выносите? не создаете ли по файлу на интерфейс/тип как в java & c#?) и я не помню задавал ли уже этот вопрос)
ну у меня чаще несколько типов в одном модуле, условно у меня есть checkin process, для него есть описание начала, конца, структуры и оно в одном файле CheckInProcess.ts

могут около типов лежать еще какие-то функции или классы, но все вместе не очень большое

Vasiliy
21.12.2016
14:27:06
ну да, явное лучше не явного)

ок, спасибо, я кажется понял как оптимально делать для себя

просто оч много импортов мозолит глаза

(:

Alexander
21.12.2016
15:17:06
Здравствуйте, я тупой. note.isFavorite = true; console.log(note); Своёства в объекте нет. Почему это может происходить?

в интерфейсе isFavorite: boolean;

Vasiliy
21.12.2016
15:24:20
http://www.typescriptlang.org/play/#src=interface%20INode%20%7B%0D%0A%20%20%20%20x%3A%20number%3B%0D%0A%7D%0D%0A%0D%0Aconst%20node%3A%20INode%20%3D%20%7B%20x%3A%201%20%7D%3B%0D%0Anode.y%20%3D%201%3B%0D%0A%0D%0Aconsole.log(node)%3B#src=interface%20INode%20%7B%0D%0A%20%20%20%20isFavorite%3A%20boolean%3B%0D%0A%7D%0D%0A%0D%0Aconst%20node%3A%20INode%20%3D%20%7B%7D%3B%0D%0Anode.isFavorite%20%3D%20true%3B%0D%0A%0D%0Aconsole.log(node)%3B

Alexander
21.12.2016
15:25:20
ну работает, клёво

Vasiliy
21.12.2016
15:25:57
а что не работает? (:

Google
Alexander
21.12.2016
15:26:53
то, что у меня тут наговнокодено. Подозреваю, что я чего-то не знаю про js...

из базы возвращается объект с таким интерфейсом. Я ему хочу насетить эту пропертю. А она не сетится.

Vasiliy
21.12.2016
15:28:32
Object.preventExtensions мб

не знаю)

Alexander
21.12.2016
15:29:25
о, вот это очень даже вероятная тема, спасибо

Vasiliy
21.12.2016
15:30:03
много чего может быть, если честно затрудняюсь сходу перечислить все возможные причины

Alexander
21.12.2016
15:34:00
это именно оно. let plainNote: Note = <Note?<Note>note).toObject(); с новым объектом работает

ну, в смысле, может и не именно оно, но меня устраивает, что работает и твой совет помог найти обход

Vasiliy
21.12.2016
15:34:52
toObject? откуда это?

Alexander
21.12.2016
15:35:28
это монгусовская тема для конвертирования в plain js object

я не знаю, что это, я только что это первый раз нагуглил

Vasiliy
21.12.2016
15:36:20
а, понял

Aleh
21.12.2016
21:12:01
@vkurchatkin это во flow сломали? https://flowtype.org/try/#0PQKhAIAEDMBsHsDu4TAFBoMbwHYGcAXcAQ3AF5wBtARgBpwAmegZnoBYBdAbjVgFMiAIx6DyJAHQAHeJIAUAShFjiUmQqUUV0uYrSjNqnRonb1WXHnj9xCAOazB4gvADKBAE4BLHPfmKgA

мне казалось, что это работает

Vladimir
21.12.2016
21:12:55
да не

Ну как это будет работать

а, стоп

вроде pop():?T должен быть

Aleh
21.12.2016
21:13:45
ага

https://github.com/facebook/flow/blob/master/lib/core.js#L246

Google
Aleh
21.12.2016
21:15:08
и shift() там тоже

Vladimir
21.12.2016
21:16:03
Странно, я вроде помню что это меняли

Aleh
21.12.2016
21:16:47
25 апреля висит коммит

Vladimir
21.12.2016
21:18:09
https://github.com/facebook/flow/pull/2717

хмм

ну то есть завернули, да

Aleh
21.12.2016
21:22:38
ага, а я вроде видел, что стримы или что-то такое flow понимает

когда пусто, когда нет

Vladimir
21.12.2016
21:22:50
Не, такого нет

Aleh
21.12.2016
21:23:10
померещилось))

Vadim
21.12.2016
23:27:34
Люди, а как использовать кастомные тайпинги вместо дефолтных при moduleResolution == node?

Бывают случаи когда с библиотекой идут не совсем корректные тайпинги (например, создатели не всегда поспевают их править вслед за изменениями апи своей библиотеки)

Vadim
21.12.2016
23:29:52
В таких случаях разумное решение - создать свою версию тайпингов в отдельной папке. Но такие тайпинги не подключаются, если moduleResolution равен node

И /// <reference path тоже не помогает

Anton
21.12.2016
23:41:04
Возможно это поможет https://www.typescriptlang.org/docs/handbook/module-resolution.html пункт How Node.js resolves modules

Vadim
21.12.2016
23:42:01
Читал уже ) Ни одно решение не помогло

Из того что там перечислено

Хотя... пришла одна мысль с дополнительными папками node_modules

Anton
21.12.2016
23:47:20
import {x} from "./src/module/package.json";

Я вообще такую проблему проще решал. Форкал библиотеку на гитхабе и указывал путь к гитхабу. Наверно так будет даже лучше

Google
Vadim
21.12.2016
23:52:00
Ура!!!! @dublicator спасибо что натолкнули на мысль перечитать статью про модуль резолюшн! ) Короче действительно помогло создание дополнительной папки node_modules в папке с src. И уж в нее и положил исправленные тайпинги

Думаю это самое простое решение

Лежать тайпинги там будут пока создатели не исправят свои

Wystan
21.12.2016
23:56:24
лежат тайпинги, никого не трогают. тут подходит к ним д3 библиотечка и говорит: “а у меня функции по мильон аргументов, го со мной, похалтурим на калым и напишем к ним типы” Ну тайпинги бычки смахнули, из ноздрей пуская дым, и погнали писаться

Vadim
21.12.2016
23:57:28
И еще я так и не понял, нахрена в tsconfig нужна опция "typeRoots" при "moduleResolution=node"? Но факт что если параметр typeRoots удаляешь, то сыпется куча ошибок.

Anton
22.12.2016
00:08:30
Вообще не использовал typeRoots, проблем не было. Ошибки возможно из-за того, что в проекте не одна папка node_modules. Но кстати, его как раз можно заюзать под кастомные тайпинги. Как-то так {"typeRoots": [ "./src/custom_typings", "./node_modules/@types"]}

Admin
ERROR: S client not available

Vadim
22.12.2016
00:09:03
Для кастомных тайпингов не помогало

все-равно приоритет у node_modules

Anton
22.12.2016
00:18:04
Вот короче подробный ответ http://stackoverflow.com/a/40326719/414789

Vadim
22.12.2016
00:22:13
Спасибо большое! Почитать смогу только с утра )

Alexander
22.12.2016
00:23:55
tl;dr: typeRoots и types не позволяют работать с тайпингами, не оформленными в виде npm-пакетов, их надо подключать по-старому (files, include, ///reference)

Vadim
22.12.2016
00:36:31
@chudesnov спасибо за короткий и четкий ответ! )

Вот короче подробный ответ http://stackoverflow.com/a/40326719/414789
Эгегей!!!! Спасибо за такую шикарную статью! Добавил ее в закладки ) Мне помог подход, описанный в ней, который оказался намного изящнее использования дополнительных папок node_modules. Короче это подход с добавлением папки с кастомными тайпингами в "paths". Теперь у меня это в конфиге выглядит так: "paths": { "*": [ "src/custom-typings/*", "src/*" ] }

Aleh
22.12.2016
06:21:11
Можно прописать в types или все их сложить и добавить в typeRoots

С node_modules в src вы остальные тайпинги не сломаете?)

Dreamerinnoise
22.12.2016
06:48:33
https://github.com/Microsoft/TypeScript/issues/12609#issuecomment-264940788 Мелочь, а приятно :)

Котяй Негодяй
22.12.2016
06:52:38
import type { MyType } from './types'; declare module 'my-module' { declare module.exports: { myMethod(): MyType; }; } Не работает так, как мною ожидается. Как правильно это реализовать?

Aleh
22.12.2016
06:54:03
export function myMethod (): MyType

Google
Aleh
22.12.2016
06:54:52
import перенеси в declare module и убери type Oo

Котяй Негодяй
22.12.2016
06:55:25
Спасибо. =)

MVP
22.12.2016
11:42:21
ts + system.js loader, козлит

пишет - system.src.js:1051 GET http://localhost:5555/dist/npm/d3.js 404 (Not Found)

Ҫѐҏӗѫӑ
22.12.2016
11:42:47
системжс не нужен

MVP
22.12.2016
11:43:08
ясен пень )

есть стартер кит репо какоенить где без него но с TS ?

чтобы проверялось что все загрузилось и потом что то типо myapp.init()

может с webpack попробую - https://www.typescriptlang.org/docs/handbook/integrating-with-build-tools.html

ну да, взял вебпак и сразу, через пол дня всего, все настроил как надо ?

Ҫѐҏӗѫӑ
22.12.2016
15:53:59
вопрос к профессионалам Flow const map = { [0 <= 1] : 'ok', }; что здесь может быть похоже на флоу синтаксис? есть баг https://github.com/babel/babylon/issues/264 релейтед к бабилону и flow плагину. хочу пофиксить. кода много, может быть есть наводки? спасибо

Vladimir
22.12.2016
15:57:19
Мда, кто такую хуйню придумал, интересно

Aleh
22.12.2016
15:57:44
а, понял

Ҫѐҏӗѫӑ
22.12.2016
15:57:48
а это не простое computed prop?
да, оно, но флоу плагин ругается на =

Мда, кто такую хуйню придумал, интересно
бабилон, флоу или компьютед пропертис, которые возвращают булин?

Vladimir
22.12.2016
15:58:24
Нет, я про сам код

Шизофрения какая-то

Aleh
22.12.2016
15:58:34
но вообще кейс супер странный да

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