Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript 声明模块和导入定义_Typescript_Typescript Typings - Fatal编程技术网

Typescript 声明模块和导入定义

Typescript 声明模块和导入定义,typescript,typescript-typings,Typescript,Typescript Typings,我已经为一个接口编写了TypeScript类型,该接口可以由多个其他npm包实现(即 这是一个相当长的文件 import { EventEmitter } from "events"; import StrictEventEmitter from "strict-event-emitter-types"; export type PeripheralUuid = string; export type Address = string; export type AddressType = "p

我已经为一个接口编写了TypeScript类型,该接口可以由多个其他npm包实现(即

这是一个相当长的文件

import { EventEmitter } from "events";
import StrictEventEmitter from "strict-event-emitter-types";

export type PeripheralUuid = string;
export type Address = string;
export type AddressType = "public" | "random" | "unknown";
export type Descriptor = string;

export interface Advertisement {
  localName: string;
  txPowerLevel: number;
  serviceUuids: BluetoothServiceUUID[];
  manufacturerData?: Buffer;
  serviceData?: Buffer;
}

export interface Methods {
  init(): void;
  startScanning(
    serviceUuids: BluetoothServiceUUID[],
    allowDuplicates: boolean
  ): void;

// ...
你可以在这里看到所有这些

我无法控制该文件的实现,但我知道它们必须符合这些类型。我正在导入这些文件,并试图告诉typescript,当我导入这些实现时,比如

import BindingsMacOs from "noble-bindings-macos";
import BindingsWindows from "noble-bindings-windows";
import BindingsLinux from "noble-bindings-linux";
因为如果我这样做,我会得到一个错误或警告

现在我想我可以将我的类型定义为
bindings.d.ts
,并编写模块声明来导入这些绑定:

import Bindings from "./bindings"

declare module "noble-bindings-macos" {
  export default Bindings;
}
但我错了:

扩充中的模块名无效。模块“noble bindings macos”解析为“/Users/lbombach/Projekte/DecentEspresso/sblendid/packages/noble bindings macos/index.js”处的非类型化模块,无法扩展。ts(2665)

如果我删除
import
语句并只导出一些东西,它就可以正常工作

是否有任何方法可以导入这些声明并将其重用于多个模块声明