Node C++ Addon的Typescript声明文件

Dou*_*fer 6 typescript node.js-addon

我有一个Node C++ Addon,它提供了一个类似于Node文档中的包装类.我可以要求()我的插件,然后获取我的类的构造函数来创建一个实例.

const { MyClass } = require('myaddon');
const obj = new MyClass('data');
Run Code Online (Sandbox Code Playgroud)

现在我想使用TypeScript来做同样的事情.我无法找到.d.ts文件和import语句的正确组合来使其工作.我想理想情况下我想声明我的类在模块中并且有一个带字符串的构造函数.我可以这样做:

import { MyClass } from 'myaddon';
const obj = new MyClass('data');
Run Code Online (Sandbox Code Playgroud)

人们见过这样的例子吗?

Dou*_*fer 7

我想我终于有了它.正如@ZachB所建议的,我创建了一个myaddon.ts文件,其中包含以下内容:

const myaddon = require('./build/release/myaddon')

export interface MyClass {
    myMethod(arg: string): number
}

export var MyClass: {
    new(param: string): MyClass
} = myaddon.MyClass
Run Code Online (Sandbox Code Playgroud)

然后使用它:

import { MyClass } from 'myaddon'

const thing: MyClass = new MyClass('something')
const answer: number = thing.myMethod('blah')
Run Code Online (Sandbox Code Playgroud)