Pesquisa de site

node.js - erro TS2305: O módulo '"tls"' não possui o membro exportado 'TLSSocketOptions'


Estou tentando me conectar ao MongoDB usando os drivers do MongoDB em um projeto Node.js, mas estou tendo problemas na compilação e recebo o erro mencionado "node_modules/mongodb/mongodb.ts34.d.ts:31:10 - error TS2305: Module '"tls"' has no exported member 'TLSSocketOptions'." Qualquer ajuda sobre como resolver esse aparente problema de pacote do Node seria muito útil!

Quando eu inspeciono, o pacote tls tem TLSSocketOptions e parece tê-lo exportado através do seguinte no final do arquivo

declare module 'node:tls' {
    export * from 'tls';
}

Meu package.json

{
  "main": "wwwroot/index.js",
  "bin": "wwwroot/index.js",
  "scripts": {
    "start": "node ./wwwroot/index.js",
    "dev": "ts-node src/",
    "compile": "npx tsc",
    "postinstall": "npx tsc"
  },
  "engines": {
    "node": "14.18.1"
  },
  "dependencies": {
    "@discordjs/uws": "^10.149.0",
    "discord.js": "^11.4.2",
    "mongodb": "^4.1.4",
    "snoowrap": "^1.23.0"
  },
  "devDependencies": {
    "@types/node": "^11.15.54",
    "pkg": "^4.5.1",
    "ts-node": "^10.4.0",
    "tslint": "^5.16.0",
    "typescript": "^3.9.10"
  }
}

Resposta #1

Sua versão de @types/node parece ser antiga e eu acho que o export em questão foi adicionado desde então

Resposta #2

1 - Atualize suas definições de tipo do Node.js:

  npm install --save-dev @types/node@latest

2- Verifique sua versão do Node.js: TLSSocketOptions foi renomeado para TlsOptions em versões mais recentes. Use SecureContextOptions ou TlsOptions em vez disso.

3- Se você estiver usando o módulo tls diretamente, atualize seu código para usar o tipo correto:

import { TlsOptions } from 'tls';/* or */ import { SecureContextOptions } from 'tls';

4- Verifique a sua versão do TypeScript:

npm install typescript@latest

Artigos relacionados