У меня есть аддон ac (с использованием napi) для nodejs, и я могу правильно запустить его в js code.now, я хочу использовать его в машинописном тексте, я пытаюсь написать файл .d.ts, но всегда не удается. Как я могу правильно написать файл d.ts?
C-аддон - это код helloworld, подобный этому:
#include <node_api.h>
#include <stdio.h>
napi_value Helloworld(napi_env env, napi_callback_info info)
{
napi_status status;
size_t argc = 1;
napi_value argv[1];
status = napi_get_cb_info(env, info, &argc, argv, 0, 0);
if(status != napi_ok )
{
napi_throw_type_error(env,"", "Wrong number of arguments");
status = napi_get_undefined(env, argv);
}
printf("Hello\n");
return NULL;
}
napi_value Init(napi_env env, napi_value exports)
{
napi_status status;
napi_property_descriptor des =
{ "helloworld", 0, Helloworld, 0, 0, 0, napi_default, 0 };
status = napi_define_properties(env, exports, 1, &desc);
return exports;
}
NAPI_MODULE(addon, Init)
и код js такой:
//this can run
const addon = require("../1/build/Release/addon");
addon.helloworld();
js код может работать. И теперь я хочу сделать это в машинописном тексте, как я могу написать файл .d.ts и как я могу запустить его в машинописном тексте? Спасибо.
Я попробовал немного, но потерпел неудачу:
//this is fail code
declare module "addon" {
function helloworld():string
export = addon
}
/*
const addon = require('./addon')
declare module 'addon'{
export function addon.helloworld():string
}
export function addon.echo(input: string):string
export function echo {
} = addon.echo */
/* export = helloworld
declare function helloworld (): string
*/
/*
export = MyFunction;
declare function MyFunction(): string;
*/
/* const addon = require('./addon')
export default module 'addon' {
export function helloworld():string
} */
/*
const addon = require('./addon')
export function helloworld():string
*/