寫聲明類和命名空間具有相同名稱的我使用的是第三方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