J'aimerais :
./myClass/index.js
MyClass
quelque part (dans index.ts ou dans un fichier de déclaration spécifié, je ne sais vraiment pas comment le faire)index.ts
quelque chose comme
// index.ts
import MyClass from './myClass' // or require, or anything that would work
export {MyClass}
et
// myClass/index.js
export default class MyClass {
...
}
Cela ne fonctionne évidemment pas, car l'importation de ./myClass/index
ne trouvera pas le module.
Le problème, c’est que j’ai essayé de créer un fichier ./myClass/index.d.ts
basé sur cet exemple , mais quoi qu’il en soit, j’ai toujours un Erreur: Impossible de trouver le module './myClass/index.js' lors de l’exécution :(
Certaines notions de base de TypeScript me manquent, mais je cherche des ressources claires.
Des idées ?
Il n'y a pas de export default class
en JavaScript. Ce que vous pouvez faire, c'est écrire votre fichier JS comme ceci. myClass/index.js
"use strict";
class MyClass {
hello(name) {
console.log(`Hello ${name}`);
}
}
exports.default = MyClass;
Créez une définition de type pour cela. myClass/index.d.ts
export default class MyClass {
hello(name: string): void;
}
Vous pouvez ensuite l'importer dans votre TypeScript comme ceci.
/// <reference path="./myClass/index.d.ts" />
import MyClass from "./myClass";
const my = new MyClass();
my.hello("Stack Overflow");
à la fin de votre fichier javascript, écrivez ceci
exports.MyClass = MyClass;
dans les fichiers ts
import * as IzendaSynergy from './izenda/izenda_ui.js';
ou
import { IzendaSynergy } from './izenda/izenda_ui.js';
dans le fichier tsconfig.json
"allowJs": true