繁体   English   中英

npm 自定义 typescript package - 类型显示为任何

[英]npm custom typescript package - types show as any

我已经用 typescript 创建了一个私有 npm 库,并且我正在尝试从 React 应用程序(使用打字稿)中使用它。

这是库的tsconfig.json

{
  "compilerOptions": {
    "target": "ES2017",
    "module": "commonjs",
    "lib": ["es2017", "es7", "es6", "dom"],
    "declaration": true,
    "sourceMap": true,
    "strict": true,
    "baseUrl": "./src",
    "outDir": "./lib",
    "rootDir": "./src",
    "paths": {
      "src/*": ["./src/*"]
    },
    "esModuleInterop": true,
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true
  },
  "include": ["src/**/*"],
  "exclude": ["node_modules"]
}

文件夹结构如下:

package
   /src
      index.ts
      /types
         FuncTypes.ts
      /utils
         someFunc.ts

FuncTypes.ts文件:

export interface FuncOptions {
  value: string;
}

someFunc.js文件:

import { FuncOptions } from "types";

export default (options: FuncOptions ): void => {
  console.log(options);
};

最后, index.ts

import { default as someFunc } from "./utils/someFunc";

export { someFunc };

我成功发布它,从 React 应用程序成功安装它,但是每当我使用someFunc()时, options的类型显示为any

我相信问题在于绝对路径以及我如何配置它们。

有任何想法吗?

弄清楚了。

运行tsc后, outDir ( lib ) 中的路径仍然相对于src文件夹。

我必须安装tscpaths并将构建命令更改为"build": "tsc --project tsconfig.json && tscpaths -p tsconfig.json -s./src -o./lib"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM