我想:
./myClass/index.js
MyClass
的公共方法(在index.ts或指定的声明文件中,我真的不知道该怎么做)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
的导入将找不到模块。
问题是,我尝试根据this example创建./myClass/index.d.ts
文件,但无论如何,我仍然有错误:找不到模块'./myClass/index。运行时js'错误:(
我觉得我在这里错过了一些打字稿基础,但我正在努力寻找一些明确的资源。
有什么想法吗?
答案 0 :(得分:10)
JavaScript中没有export default class
。你能做的就是像这样写你的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");
答案 1 :(得分:1)
在您的javascript文件的末尾, 写这个
exports.MyClass = MyClass;
ts文件中的
import * as IzendaSynergy from './izenda/izenda_ui.js';
或
import { IzendaSynergy } from './izenda/izenda_ui.js';
tsconfig.json文件中的
"allowJs": true