我使用的是一个节点模块,这个模块在打字时找不到,并且在definelytyped中不存在。
该模块的基本用途是:
import * as SomeClass from 'some-module';
var someObject = new SomeClass("some string");
someObject.someMethod();
如您所见,此模块将类作为其默认值导出。我还没想出如何为它编写声明文件。
这是我设法做的最好的事情:
declare module 'some-module' {
export default class SomeClass {
constructor (someArg: string);
someMethod(): void;
}
}
BTW它确实可以运行JavaScript。这只是TypeScript困扰我。
任何想法如何解决?
答案 0 :(得分:3)
对于声明,您需要这样做:
declare module 'some-module' {
class SomeClass {
constructor (someArg: string);
someMethod(): void;
}
namespace SomeClass {}
export = SomeClass;
}
更新:感谢Blake Embrey指出,需要黑客namespace SomeClass {}
来实现这一目标。
有关详细信息,请参阅Glide。
答案 1 :(得分:0)
如果你只是想避免TypeScript错误而不用担心ItelliSense只是在你文件的开头声明你的类库,例如:
import openpyxl
from openpyxl.styles import NamedStyle
from openpyxl import load_workbook
from openpyxl.styles.colors import RED
from openpyxl.styles import Font
# I normally import a lot of stuff... I'll also take suggestions here.
file = 'MY_PATH'
wb = load_workbook(filename=file)
sheet = wb.get_sheet_by_name('Output')
for row in sheet.iter_rows():
for cell in row:
if '2' in cell.coordinate:
# using str() on cell.coordinate to use it in sheet['Cell_here']
sheet[str(cell.coordinate)].font = Font(color='00FF0000', italic=True)
wb.save(filename=file)