(TS)找不到名称“解析”

时间:2019-11-27 10:08:32

标签: typescript

在同一目录中创建ts文件和d.ts文件会产生错误:找不到名称“ test”

// src/index.ts
parse('123123')
// src/index.d.ts
declare var parse: (selector: string) => any;

当我更改d.ts文件的路径时,它工作正常

// src/index.ts
parse('123123')
// src/xxx/index.d.ts
declare var parse: (selector: string) => any;

下面是我的tsconfig

{
  "compilerOptions": {
    "esModuleInterop": true,
    "experimentalDecorators": true,
    "forceConsistentCasingInFileNames": true,
    "importHelpers": true,
    "incremental": true,
    "lib": ["dom", "esnext"],
    "module": "commonjs",
    "moduleResolution": "node",
    "noUnusedLocals": true,
    "noUnusedParameters": true,
    "resolveJsonModule": true,
    "skipLibCheck": true,
    "sourceMap": true,
    "strict": true,
    "stripInternal": true,
    "target": "es5"
  },
  "include": ["src"]
}

1 个答案:

答案 0 :(得分:0)

使用自定义类型的最佳方法是在src目录中创建目录,例如打字。

然后,您必须通过将以下代码段添加到tsconfig文件中,将tsc编译器指向该文件夹:

  {
    "compilerOptions": {
    ...
    "typeRoots": [
        "./node_modules/@types",
        "./src/typings"
     ]
   }
   ...
  }

然后,您可以命令您以模块形式输入内容。用一个文件创建目录./src/typings/parse-module:index.d.ts:

declare module "parse-module" {
   export function parse(selector: string): any;
}

现在您可以在index.ts文件中愉快地导入它了:

import { parse } from "parse-module";

parse("blabla");