我来自Java世界,我正在尝试创建一个具有JSDOC中记录的类型的普通JS(ES2018)应用程序,然后使用TypeScript编译器获取可以与应用程序捆绑在一起的漂亮定义文件。我只有两个主要文件:client.js(包含默认导出的类)和constants.js(带有某些常量的默认导出的对象),都在src /下。我想在公共名称空间下公开这两个,所以我的index.js看起来像这样:
import XApiClient from 'src/brokers/xtb/x_api_client';
import {Constants} from 'src/brokers/xtb/x_api_constants';
/**
* @namespace
* @property {Constants} Constants
* @property {XApiClient} XApiClient
*/
const XApi = {Constants: Constants, Client: XApiClient};
export default XApi;
然后通过npm + git在其他地方使用了整个项目,但是在这个新项目中,Typescript编译器无法识别XApi.XApiClient的类型。我目前非常绝望,正在考虑退出编码并打算照顾山上的山羊。
最后,我只需要硬着头皮,然后将所有内容迁移到Typescript,最后,我还要执行另一个步骤,即解析JSDOC标记以获取定义文件。看来错误是由于tsconfig上的配置错误。
FWIW这是我的tsconfig(我使用gts作为基准,还请注意,我正在使用webpack将所有内容打包到一个文件中):
{
"extends": "./node_modules/gts/tsconfig-google.json",
"compilerOptions": {
"outDir": "js/",
"rootDir": "src/",
"sourceMap": true,
"moduleResolution": "node",
"module": "commonjs",
"target": "ES2018",
"lib": ["dom","dom.iterable", "ES2018"],
"noImplicitAny": true,
"allowSyntheticDefaultImports": true
},
"include": ["src/**/*.ts", "test/**/*.ts"],
"exclude": ["dist", "node_modules"]
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句