写声明类和命名空间具有相同名称的我使用的是第三方JavaScript库,格式如下:如何在打字稿
var MyClass = function (name) {
this.name = name;
}
MyClass.prototype.greet = function() {
window.alert('Hello ' + this.name)
}
我想写这个打字稿声明。我有这样的事情:
这是所有编译罚款,当我只想引用它按预期工作的类型。但是我在尝试使用类实现时遇到了问题。
使用这种方式,它编译和运行,但我没有得到任何编译时检查
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
感谢您为此 - 我修改了这一点给'声明类型MyClassFactory = new(x:string)=> MyClass'和'const a = new factory('Bob');'' – tarling