TS7016:找不到声明文件。我可以添加

发布于 2025-01-31 13:13:42 字数 1965 浏览 3 评论 0原文

我需要与ssl-validator一起 ssl-validator - 验证由用户上传的SSL证书。该库没有index.d.ts文件,如果我正确理解此原理,我必须添加它。 我的文件结构:

├── package-lock.json
├── package.json
├── index.ts
├── tsconfig.json
└── typings
    └── sslValidator.d.ts

index.ts:

import * as sslValidator from 'ssl-validator';
const { validateSSLCert, isValidSSL } = sslValidator;

const  main = async () => {
    const result = await isValidSSL(
        "-----BEGIN CERTIFICATE-----\n" +
        <CERTIFICATE>
        "-----END CERTIFICATE-----"
    );
    return result;
}

main();

sslvalidator.d.ts:

declare module 'ssl-validator' {
    function isValidSSL (certificate: string): Promise<boolean>;
    function validateSSLCert (certificate: string): Promise<any>;
}

tsconfig.json:

{
  "compilerOptions": {
    "module": "commonjs",
    "target": "ES2017",
    "noImplicitAny": true,
    "strictNullChecks": false,
    "lib": ["es2017", "dom", "esnext.asynciterable"],
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "outDir": "dist",
    "baseUrl": ".",
    "sourceMap": true,
    "typeRoots": ["typings"],
    "traceResolution": false
  },
  "include": ["*/*.ts"],
}

静态代码分析没有突出任何内容,但是在运行后,我得到了:

index_t.ts:1:31 - error TS7016: Could not find a declaration file for module 'ssl-validator'. '/Users/nikita/Desktop/code/aws_sandbox/node_modules/ssl-validator/lib/index.js' implicitly has an 'any' type.
  Try `npm i --save-dev @types/ssl-validator` if it exists or add a new declaration (.d.ts) file containing `declare module 'ssl-validator';`

1 import * as sslValidator from 'ssl-validator';
                                ~~~~~~~~~~~~~~~

我做错了什么?

PS在库中打字有其他选择吗?

I need to work with ssl-validator ssl-validator in my nodeJs(typescript) project - to validate ssl certificate uploaded by user. The library doesn't have index.d.ts file and I have to add it if I understood this principle correct.
My file structure:

├── package-lock.json
├── package.json
├── index.ts
├── tsconfig.json
└── typings
    └── sslValidator.d.ts

index.ts:

import * as sslValidator from 'ssl-validator';
const { validateSSLCert, isValidSSL } = sslValidator;

const  main = async () => {
    const result = await isValidSSL(
        "-----BEGIN CERTIFICATE-----\n" +
        <CERTIFICATE>
        "-----END CERTIFICATE-----"
    );
    return result;
}

main();

sslValidator.d.ts:

declare module 'ssl-validator' {
    function isValidSSL (certificate: string): Promise<boolean>;
    function validateSSLCert (certificate: string): Promise<any>;
}

tsconfig.json:

{
  "compilerOptions": {
    "module": "commonjs",
    "target": "ES2017",
    "noImplicitAny": true,
    "strictNullChecks": false,
    "lib": ["es2017", "dom", "esnext.asynciterable"],
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "outDir": "dist",
    "baseUrl": ".",
    "sourceMap": true,
    "typeRoots": ["typings"],
    "traceResolution": false
  },
  "include": ["*/*.ts"],
}

Static code analysis doesn't underline anything, but after running I get:

index_t.ts:1:31 - error TS7016: Could not find a declaration file for module 'ssl-validator'. '/Users/nikita/Desktop/code/aws_sandbox/node_modules/ssl-validator/lib/index.js' implicitly has an 'any' type.
  Try `npm i --save-dev @types/ssl-validator` if it exists or add a new declaration (.d.ts) file containing `declare module 'ssl-validator';`

1 import * as sslValidator from 'ssl-validator';
                                ~~~~~~~~~~~~~~~

What do I do wrongly?

p.s. Is there any alternative of ssl-validator with typing in library?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文