问题描述
我想:
- 导入定义类的js文件:
./ myClass / index .js
- 在某处(在index.ts或指定的声明文件中)声明
MyClass
的公共方法,我真的不知道怎么做) - 有一个暴露类的打字稿文件:
index.ts
- Import a js file that defines a class:
./myClass/index.js
- Declare the public methods of
MyClass
somewhere (in index.ts or a specified declaration file, I really don't know how to do it) - Have a typescript file that exposes the class:
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 obviously does not work, as the import of ./myClass/index
won't find the module.
事情是,我试图根据,但无论如何,我仍然有一个错误:找不到模块'./myClass/index.js运行时出现错误:(
The thing is, I tried to create a ./myClass/index.d.ts
file based on this example, but no matter what, I still have a Error: Cannot find module './myClass/index.js' error at runtime :(
我觉得我在这里错过了一些打字稿基础,但我正在努力寻找一些明确的资源。
I feel like I miss some typescript basics here but I'm striving to find some clear resources.
任何想法?
推荐答案
没有导出默认类JavaScript中的
。你能做的就是像这样写你的JS文件。 myClass / index.js
There is no export default class
in JavaScript. What you can do is write your JS file like this. myClass/index.js
"use strict";
class MyClass {
hello(name) {
console.log(`Hello ${name}`);
}
}
exports.default = MyClass;
为它创建一个类型定义。 myClass / index.d.ts
Create a Type definitions for it. myClass/index.d.ts
export default class MyClass {
hello(name: string): void;
}
然后你可以像这样将它导入你的TypeScript。
You can then import it into your TypeScript like this.
/// <reference path="./myClass/index.d.ts" />
import MyClass from "./myClass";
const my = new MyClass();
my.hello("Stack Overflow");
这篇关于打字稿:如何从javascript文件导入一个类?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!