作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个用 ES6 编写的 JavaScript 类:
// MyClass.js
export default class MyClass {
myfunction() {
console.log('myfunction called');
}
}
我想用 TypeScript 类扩展这个类:
// MyTSClass.ts
import MyClass from './MyClass';
class MyTSClass extends MyClass {
public initialize() {
this.myfunction();
}
}
这会产生 TypeScript 编译器错误:
TS2339: Property 'myfunction' does not exist on type 'MyTSClass'
我在我的 tsconfig 中将 esModuleInterop
设置为 true
。
我试图制作一个声明文件,认为这可能会有所帮助:
// MyClass.d.ts
export = MyClass;
declare class MyClass {
myfunction: void;
}
这让编译器很高兴,但是在浏览器生成的代码中我看到了一些意想不到的东西,控制台日志没有打印:
class MyTSClass extends WEBPACK_IMPORTED_MODULE_1__["MyClass"]...
我做错了什么?
最佳答案
很难从您提供的信息中判断出来,但我会从调用 initialize
的任何地方开始。我假设您不是要改用 constructor
吗?在 Chrome 中,您可以使用 debugger;
语句在代码中的特定点启动调试器,我认为这比设置断点更容易。从那里,您可以单步执行代码并查看发生了什么。您还可以 console.log 您的类的实例以检查其原型(prototype)链以确保 myfunction
方法存在。
关于javascript - 如何在 TypeScript 类中扩展 ES6 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55884047/
我是一名优秀的程序员,十分优秀!