类模块的声明文件(TypeScript)

时间:2017-03-23 15:16:44

标签: javascript node.js typescript

我使用的是一个节点模块,这个模块在打字时找不到,并且在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困扰我。

任何想法如何解决?

2 个答案:

答案 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)