文件类型.d.ts不是一个模块

时间:2019-09-08 23:25:39

标签: node.js typescript npm

我正在创建一个npm包,并且我已经完成了很多源代码。我在发布之前一直在本地对其进行测试,但打字稿出现两个错误。 File '<path>/McStatus.d.ts' is not a module.Cannot find name 'McServer'

我的包裹有一个src文件夹,其中包含index.tstypes.d.ts。在软件包的根目录中,我有McStatus.d.ts

代码片断:

package.json:

"main": "dist/index.js",
"types": "McStatus.d.ts",

tsconfig.json:

{
  "compilerOptions": {
    "target": "es6",
    "module": "commonjs",
    "sourceMap": true,
    "outDir": "./dist",
    "rootDir": "./src",
    "strict": true,
    "esModuleInterop": true
  }
}

src / index.ts

export function checkStatus(server: McServer): Promise<Status> {
  ...
}

McStatus.d.ts

declare namespace McStatus {
  function checkStatus(server: McServer): Promise<Status>

  interface Status {
    ping?: number
    version?: string
    motd?: string
    players?: number
    max_players?: number
  }

  interface McServer {
    host: string
    port: number
  }
}

测试包:

我创建了一个测试目录,并尝试了npm install <path to package>npm link甚至npm pack并安装了.tgz文件。

我的测试文件是错误的来源

import checkStatus from 'mcstatus'
// File '/home/stphn/git/mcstatus/McStatus.d.ts' is not a module.

const options: McServer = {
// Cannot find name 'McServer'
  host: "mc.stephenduvall.me",
  port: 25565,
}

checkStatus(options).then(console.log).catch(console.log)

0 个答案:

没有答案