Node C++ Addon 的 Typescript 声明文件

标签 typescript node.js-addon

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

const { MyClass } = require('myaddon');
const obj = new MyClass('data');

现在我想使用 TypeScript 来做同样的事情。我找不到 .d.ts 文件和导入语句的正确组合来完成这项工作。我想理想情况下我想声明我的类在模块中并且有一个采用字符串的构造函数。然后我可以这样做:

import { MyClass } from 'myaddon';
const obj = new MyClass('data');

人们见过这样的例子吗?

最佳答案

我想我终于明白了。正如@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

然后使用它:

import { MyClass } from 'myaddon'

const thing: MyClass = new MyClass('something')
const answer: number = thing.myMethod('blah')

关于Node C++ Addon 的 Typescript 声明文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44275172/

相关文章:

javascript - Angular 2 中组件如何相互引用?

angular - 如何禁用/抑制 TypeScript 库中的错误?

c++ - native Node.JS 模块 - 从参数解析 int[]

c++ - 错误 : Cannot open shared object file: No such file or directory

c++ - 如何将 v8::String 转换为 const char *

javascript - typescript 。如何从对象的值中获取对象的属性名称?

css - 如何将样式类添加到 Angular 5 中创建的 ComponentRef?

javascript - 使用 Nan 检查 node.js 插件中的 instanceof

c++ - Node.js 和 C/C++ 集成 : how to properly implement callbacks?

javascript - 我应该从 HTMLProps<HTMLElement> 继承 react Prop 吗?