【发布时间】:2017-08-17 09:10:13
【问题描述】:
我正在使用这种格式的第 3 方 Javascript 库:
var MyClass = function (name) {
this.name = name;
}
MyClass.prototype.greet = function () {
window.alert('Hello ' + this.name)
}
我想为此编写一个 Typescript 声明。我有这样的事情:
declare class MyClass {
constructor(name: string);
greet(): void;
}
这一切都很好编译,当我只想引用它按预期工作的类型时。但是我在尝试使用类实现时遇到了问题。
以这种方式使用它,它可以编译并运行,但我没有得到编译时间检查
const MyClass = (require('./MyClass') as any).MyClass;
const a = new MyClass('Bob'); //a is any
这样使用会出现编译错误
const MyClass = (require('./MyClass') as any).MyClass as MyClass;
const a = new MyClass('Bob'); //Cannot use 'new' with an expression whose type lacks a call or construct signature.
这样使用会出现编译错误
import './MyClass';
const a = new MyClass('Bob');
//duplicate identifier in MyClass.d.ts
【问题讨论】:
标签: typescript