[英]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.