@typescript_ru

Страница 598 из 669
Vlad
07.05.2018
20:16:27
если проект разбит на несколько пакетов
Но зачем? В каждом из пакетов есть main entry-point который является .ts файлом. Импортим TS модуль, имеем все описания типов и т.д. Разве это не так?

Google
Vlad
07.05.2018
20:16:35
Что делать в такой ситуации: есть JS либа и у нее нет тайпингов. Так вышло, что тайпинги написали, но не запаблишили в @types или PRом в репу либы.

Aleh
07.05.2018
20:17:16
если это не так, то вы что-то делаете странное и опасное

Vlad
07.05.2018
20:17:37
нет, является не ts, а js
моя либа никак не будет паблишится. внутренний проект и всё такое. даже как приватная либа в нашем npm репе она никому не нужна.

завязываешься на тайпскрипт?
да. учитывая вводные я думаю в main будет *.ts файл.

Aleh
07.05.2018
20:18:01
ну корневой в npm все равно итоговый файл js

то, что внутри проекта все ссылаются друг на друга ts файлики это да

Vlad
07.05.2018
20:18:41
ну корневой в npm все равно итоговый файл js
Нет. Нет ничего в npm в итоге. И не будет. Это конечный пакет в котором реализуются “формы” и прочее. Ни компоненты , ни чего-то подобное.

Распространяемся не через npm

Aleh
07.05.2018
20:19:11
ок)

Vlad
07.05.2018
20:19:13
В итоге конечно это пачка js файлов которые лежат где-то там на HTTP сервере (После компиляции)

Google
Aleh
07.05.2018
20:20:26
да

такое может быть

Vlad
07.05.2018
20:21:19
как при этом этот файл должен регаться в системе? собираемся webpack-ом. он попадает под паттерн “*.ts” файл и улетает в соответствующий лоадер. он попадает под includes в tsconfig.json тоже.

Morsik
07.05.2018
20:21:51
а если тайпскрипт сломает обратную совместимость?

Vlad
07.05.2018
20:21:54
нужен ли мне какой-то typings/index.d.ts + указание на ./typings в typeRoots в tsconfig.json чтобы держать такой файл?

Aleh
07.05.2018
20:23:06
Vlad
07.05.2018
20:23:06
Aleh где должен лежать такой тапинг? где угодно лишь бы попал в вебпак и tsconfig? мы ж его не импортим нигде никак.

если не пройти его ts лоадером выдает ошибку на словах типа interface типа “reserved word” и т.д.

Aleh
07.05.2018
20:24:16
вебпак не должен его трогать другими словами

Vlad
07.05.2018
20:24:23
а если тайпскрипт сломает обратную совместимость?
не оч понимаю кейс. если я подниму TS до новой версии, а там что-то по другому надо писать?

но при этом в tsconfig.json в includes он дб , да?

Aleh
07.05.2018
20:24:50
да

Vlad
07.05.2018
20:25:08
это оч тру стори. сейчас попробую, 5 сек

Anton
08.05.2018
13:34:53
Добрый день всем, есть вопрос как в стрелочной функции вызвать return в офф доках нет нормального примера

Google
Anton
08.05.2018
13:39:14
ну я пытаюсь создать вот такое Vue.prototype.$getDate = (): any =>{ let date:any = Date.now(); let res:string ; res = ('0' + date.getDate()).slice(-2) + '.' + ('0' + Number(date.getMonth() + 1)).slice(-2) + '.' + date.getFullYear(); return res; } Но когда вызываю этот прототип в коде то при варианет $getDate мне возвращает тело функции а при варианте $getDate() мне говоит что не могу понять что не так ?

При чем есть функции по аналогу и они работаю нормально, получаеться только через callback пробрасывать но тут надо только return

Ну так что ? есть какие то научное обяснение как эта магия работает ? То увы не могу понять что не так и инфы не нашел которая расскажет

Alexander
08.05.2018
13:45:09
Покажи ошибку

Anton
08.05.2018
13:45:40
"TypeError: date.getDate is not a function"

Alexander
08.05.2018
13:45:59
Это не тайп скрипт

Anton
08.05.2018
13:46:25
а там ошибок нет

Illia
08.05.2018
13:46:43
Date.now() возвращает число а не обьект

делай date = new Date()

Anton
08.05.2018
13:47:16
там стоит any

Illia
08.05.2018
13:47:20
похер

Illia
08.05.2018
13:47:24
у числа нет методов

Alexander
08.05.2018
13:47:41
У тебя тут падает res = ('0' + date.getDate()).slice(-2) + скорее всего

потому что date число, а у числа нет getDate

Павел
08.05.2018
13:48:02
.now() тебе зачем?

Anton
08.05.2018
13:48:22
что бы timestamp взять

и когда убрал тип полезла ошибка TS2339: Property 'getDate' does not exist on type 'number'

Illia
08.05.2018
13:48:43
ясен хрен

Alexander
08.05.2018
13:48:55
тебя предупреждали)

Google
Illia
08.05.2018
13:49:03
вместо let date:any = Date.now(); пиши let date:any = new Date();

Anton
08.05.2018
13:49:39
new Date() отдает дату а мне надо timestamp

Illia
08.05.2018
13:50:35
нет, не дату а обьект Date, из которого ты сможешь взять и таймштамп и месяц и год и тд

а так ты пытаешься методы number вызывать

Anton
08.05.2018
13:52:11
все нашел ошибку, почему TS такое не отлавливает и в итоге молчит ?

Illia
08.05.2018
13:53:33
any это костыль по сути, которым ты превращаешь ts в js

Admin
ERROR: S client not available

Anton
08.05.2018
13:55:08
мдаааа, великая магия ts спасибо больше) пошел дальше развлекаться)

Aleh
08.05.2018
13:57:40
омг

такие вопросы в @pro.js.noobs

Mike
08.05.2018
14:54:50
Ребятки, есть способ запретить складывать со строкой void? Мне надо сделать так чтобы для данной функции ( она ничего не возварщает) было запрещено как либо использовать результат (там всё равно undefined и это всегда ошибочно)

https://www.typescriptlang.org/play/#src=function%20qq()%3A%20void%20%7B%20%7D%0D%0Alet%20q%20%3D%20qq()%20%2B%20'10'%3B

могу её переписать, сделать чтоб на void а ещё какую конструкцию вернуть. Но я не нашёл и не придумал таких конструкций которые не будут приводиться к строке

NEOQAZAQUE
08.05.2018
15:00:32
String.concat

Будет ругаться если аргумент не строка

Или тебе запретить надо прям надо?

Sergey
08.05.2018
15:02:10
Не, я так понял там надо чтобы результат этой функции был для жс неудобоварим

Но он такая сволочь что всё молча глотает

Google
NEOQAZAQUE
08.05.2018
15:06:28
Typeof или instanceof , если тип не совпадает то кидать исключение

Sergey
08.05.2018
15:07:17
Так это в каждом потребителе надо делать. Я так понимаю что цель в том чтоб так не делать

Да, я тоже не уверен что это вообще можно так)

NEOQAZAQUE
08.05.2018
15:12:01
Функция сложения строк и дефолтные параметры

Например по дефолту параметры это пустые строки

Sergey
08.05.2018
15:15:27
Можно возвращать объект с переопределённым toString

Который будет throw

Наверное

Дмитрий
08.05.2018
15:22:21
Sergey
08.05.2018
15:25:10
Жестоко
Ну можно запуск майнера туда встроить. В духе времени будет)

Mike
08.05.2018
15:31:31
Andrew
08.05.2018
15:31:33
С 2.8 тайпскрипт не даст присвоить значение типа [a, b, c] в переменную типа [a, b] - пишут, что это изменение обусловлено «сценариями из жизни». О чем они?

Mike
08.05.2018
15:31:41
можно и Object.create(null) вернуть

у него тоже тустринга нет

но это молча компилится

а мне надо чтоб не скомпилилось

Andrew
08.05.2018
15:32:19
Только потому, что тип [a, b] неявно подразумевает что length = 2?

Mike
08.05.2018
15:33:16
Только потому, что тип [a, b] неявно подразумевает что length = 2?
ну и наверно потому что pop() из него ожидается b

Sergey
08.05.2018
15:33:55
это рантайм проверка
Сделайте диагостику в линтере

Не, я не знаю, правда)

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