У меня есть модуль, который определяет несколько классов, которые принимают параметры типа (<T>
) и реализуют интерфейс (my_interface
).Интерфейс для объекта, члены которого являются классами
// [my_module.ts]
import {my_interface} from ".\typings.d.ts"
export class Class_A <T> implements my_interface {
blah blah blah;
}
export class Class_B <T> implements my_interface {
blah blah blah;
}
и у меня есть .d.ts
файл, который определяет интерфейсы для экземпляров класса:
// [typings.d.ts]
export interface my_interface <T> {
blah:blah;
}
Я хочу добавить интерфейс, который описывает модуль в целом, но следующее поднимает «TS2304: Не удается найти имя «T». Ошибка:
// [typings.d.ts]
export interface MY_MODULE {
Class_A: my_interface<T>;
Class_B: my_interface<T>;
}
и следующее поднимает "TS2314: Generic типа 'my_interface' требует 1 аргумент типа (ов)" ошибка:
// [typings.d.ts]
export interface MY_MODULE {
Class_A: my_interface;
Class_B: my_interface;
}
Есть ли способ для создания интерфейса (MY_MODULE
) чтобы описать объект, который импортируется, когда скомпилированный код JS импортируется через:
var my_module:MY_MODULE = require("my_module")
Не должно быть необходимости определять тип модуля, компилятор должен делать вывод о самом модуле. Если вам потом понадобится, вы можете сделать следующее: 'typeof my_module'. –
Не когда модуль импортируется из скомпилированных JS-файлов, то есть когда модуль устанавливается через 'npm' или' bower'. Вот почему я пишу файл '.d.ts'. – Jthorpe
Ну, вы пробовали ссылаться на файл определения: '/// '? –