Typescript: как импортировать класс из файла javascript?
хотелось бы :
- импорт JS-файла, определяющего класс:
./myClass/index.js
- объявить публичные методы
MyClass
где-то (в индекс.ts или указанный файл объявления, я действительно не знаю, как это сделать) - есть файл typescript, который предоставляет класс:
index.ts
что-то вроде
// index.ts
import MyClass from './myClass' // or require, or anything that would work
export {MyClass}
и
// myClass/index.js
export default class MyClass {
...
}
это, очевидно, не работает, так как импорт ./myClass/index
не найти модуль.
дело в том, что я пытался создать на основе , но несмотря ни на что, у меня еще есть ошибка: не удается найти модуль '.индекс /класса MyClass/.js' ошибка во время выполнения :(
Я чувствую, что пропустил некоторые основы машинописи здесь, но я стремлюсь найти некоторые четкие ресурсы.
какие идеи ?
2 ответов
нет export default class
в JavaScript. Что вы можете сделать, так это написать свой JS-файл. myClass/index.js
"use strict";
class MyClass {
hello(name) {
console.log(`Hello ${name}`);
}
}
exports.default = MyClass;
создайте для него определения типов. myClass/index.d.ts
export default class MyClass {
hello(name: string): void;
}
затем вы можете импортировать его в свой TypeScript, как это.
/// <reference path="./myClass/index.d.ts" />
import MyClass from "./myClass";
const my = new MyClass();
my.hello("Stack Overflow");
в конце вашего файла javascript , напиши это
exports.MyClass = MyClass;
в файлы ТС
import * as IzendaSynergy from './izenda/izenda_ui.js';
или
import { IzendaSynergy } from './izenda/izenda_ui.js';
в tsconfig.файл json
"allowJs": true