
Max
05.09.2017
13:13:07
а не

Alex
05.09.2017
13:13:28
есть незатайпленная либа
в ней нужно затайпить один класс
как это правильно сделать с т. з. структуры файлов?
создать некий typings/index.d.ts ?

Max
05.09.2017
13:13:43
вот проблема

Google

Max
05.09.2017
13:13:53
x.attr.hello не работает
вроде решил
а с тайпингами подсказали
export function getProvider<T>(name: string, StateProxy?: new() => T): new() => EnhancedComponent<T>
декомпозиция в класс через new конечно адово выглядит

Дмитрий
05.09.2017
16:25:56
А обязательно тут класс сам типизировать?
Не достаточно будет его интерфейса например? Всё не читал

Max
05.09.2017
16:28:37
какой именно класс?
тут их два )

Дмитрий
05.09.2017
16:30:07
Ну то что тебе в итоге нужно

Max
05.09.2017
16:30:49
в итоге мне нужен React.Component с аттрибутом в виде класса

Google

Max
05.09.2017
16:33:19
я реально убил на это сутки лал
?

Ron
06.09.2017
07:20:16
подскажите как tslint отключить?
я в .ts чистый js хочу вставить, и линтер мне не дает скомпилить
*т.е. вебпак собрать не дает*

Dima
06.09.2017
07:21:14
/* tslint:disable */

Ron
06.09.2017
07:21:54
перед кодом жс?

Dima
06.09.2017
07:22:24
в начале файла
или // tslint:disable-next-line

Ron
06.09.2017
07:23:16
всё-равно ругается

Дмитрий
06.09.2017
07:32:47
Жесть какая
Чувак, у тебя не с линтом проблемы, а с синтаксисом вообще

Айнур
06.09.2017
09:01:13

Ivan
06.09.2017
09:18:42
я вот тоже не пойму что код делает прямо в теле класса
помутнения разума бывают у каждого )

Иван
06.09.2017
09:33:22
Ну это вполне себе может быть не очень аккуратный переход с es5 на typescript при миграции на ангуляр2+

Ivan
06.09.2017
10:40:17
вы в курсе кстати что там "canvas.width" вообще-то number, если мы говорим не о css width
ничего парсинтить не надо

Иван
06.09.2017
11:02:38
Я думаю парня до сих пор интересует вопрос как отключить линтер для этого файла, а не наше мнение о коде в этом файле ?

Google

Иван
06.09.2017
11:04:23
Мне бы конечно проще было бы исправить файл, чтобы линтинг проходил, нежели отключать его совсем... Поэтому я и не знаю как его правильно отключать.

Valery
06.09.2017
11:44:37
Добрый день , подскажите новичку в TS плз
пытаюсь подключить amd файл с опцией allowJs в typescript файл
import * as locale from './locale.i18n';
Ругается, что это не модуль.
Пробовал такую d.ts
declare module "*i18n" {
const content: Object;
export = content;
}
не помогает - что можно сделать ?

Иван
06.09.2017
14:06:21
import './locale.i18n'; ?
Или это для вэбпака? ?

Valery
06.09.2017
14:07:26
для вебпака

Иван
06.09.2017
14:07:57
Тогда тем более

Valery
06.09.2017
14:08:39
эм, так а как значение использовать с таким импортом ? о0

Иван
06.09.2017
14:09:53
А, там объект? Я думал просто код...
а там define внутри есть?

Valery
06.09.2017
14:15:36
да
там define({})

Иван
06.09.2017
14:18:19
ну методом исключения остаётся import locale from './locale.i18n';

Valery
06.09.2017
14:18:41
ну, я такое пробовал, он все равно ругается =)
все работает, но ошибка TS
для него amd это не модуль

Иван
06.09.2017
14:21:20
TS??? а где он у тебя ругается, если в ide-шечке, то пофигу... а что в tsconfig.json в поле "modules"?

Valery
06.09.2017
14:21:43
компилятор ругается, везде

Aleh
06.09.2017
14:22:23
телепаты в отпуске, сорян

Valery
06.09.2017
14:22:56
причем тут телепаты, я из описания еще что-то могу добавить?

Google

Aleh
06.09.2017
14:23:02
да, ошибку

Иван
06.09.2017
14:24:22

Valery
06.09.2017
14:25:36
TS2306: File 'C:/dev/ccm_portal/ccm/locale.i18n.js' is not a module.
то, что получается после компиляции в итоге работает
но результат с ошибками от компилятора меня не устраивает, нужно, чтобы ошибок не было

Aleh
06.09.2017
14:26:47
самый топорный вариант - положить рядом locale.i18n.d.ts
в котором описать нужные экспорты

Valery
06.09.2017
14:27:30
я выше писал пример d.ts - почему он не сработал?
вроде в доке wildcard описаны

Aleh
06.09.2017
14:27:40
может надо *i18n* такое пилить

Valery
06.09.2017
14:30:23
вопрос по d.ts - я его создал в левой папке с левым именем, но добавил папку как typeRoot
по идее же должно работать?

Aleh
06.09.2017
14:30:33
нет

andretshurotshka?❄️кде
06.09.2017
14:30:48
лол

Valery
06.09.2017
14:31:04
он только 1 к 1 по имени цепляет ?

Aleh
06.09.2017
14:31:16
нет

Valery
06.09.2017
14:31:29
а что не так ?

Aleh
06.09.2017
14:31:30
ща думаю с чего бы начать
во-первых тебе надо сделать описание модуля, который получается относительным путем “./locale.js”

Google

Aleh
06.09.2017
14:33:05
поэтому тебе надо либо подсовывать рядом файл с таким же именем, либо описывать через declare module в каком-то глобальным дефинишине
и отсюда следует во-вторых: ты либо делаешь declare module в глобальном дефинишине, либо кидаешь файл с нужным именем без declare module

Valery
06.09.2017
14:34:09
у меня этих файлов с одинаковыми именами много, везде путь относительный. Я могу один раз это определить в глобальном дефинишине ?

Aleh
06.09.2017
14:34:29
для такой ерунды у меня в src есть файлик declarations.d.ts или чето такое, в котором эти двустрочные модули записаны

andretshurotshka?❄️кде
06.09.2017
14:34:42
жесть
Ща бы типы описывать(

Aleh
06.09.2017
14:35:35
его подключать в include/files секции

Valery
06.09.2017
14:35:59
ясно, спасибо большое за подробное объяснение
сейчас попробу.
declare module "./locale.i18n.js" {
const content: Object;
export = content;
}
если делать так, то выдает TS2436: Ambient module declaration cannot specify relative module name
если использовать то, что выше, то старая ошибка

Aleh
06.09.2017
14:48:36
начни с простого locale.i18n.d.ts около, оно хоть работает?