我有一个模块,该模块是助手类的集合,每个助手类都在自己的文件中定义:controller.ts
,stateService.ts
,依此类推。从我收集到的全部导出方式来看,是创建一个index.ts
,将其全部导入然后导出(用作模块的接口)。
大体上,我的文件看起来像这样:
export default class Controller {
public state: stateService; // This will become relevant in a moment
// other things in the class
}
我的index.ts
是这些列表:
export { default as Controller } from './controller';
我的tsconfig.json
如下:
{
"compilerOptions": {
"moduleResolution": "node",
"noImplicitAny": true,
"preserveConstEnums": true,
"outDir": "dist",
"sourceMap": true,
"noEmitOnError": true,
"target": "es6",
"module": "commonjs",
"declaration": true,
"experimentalDecorators": true,
"suppressImplicitAnyIndexErrors": true
},
"include": ["src/**/*"],
"exclude": ["node_modules", "tests", "src/**/*.spec.ts"],
"types": ["jest"]
}
现在我有一个示例项目,可以使用npm link
在本地测试模块:
export default class OwnerController extends Controller {
foo() {
this.state.get(bar);
}
}
当我尝试在依赖项目中使用Controller
类并访问state
属性时,出现以下错误:
[ts] Property 'state' does not exist on type 'OwnerController'. [2339]
以几乎相同的方式,类方法也会出现此错误:
[ts] Property 'start' does not exist on type 'CarExampleApp'. [2339]
有人可以建议我做错了什么吗? (谢谢!)
答案 0 :(得分:0)
我最终发现了问题,@ Aravindan指出,在执行构建后,请确保重新运行npm link
只是为了确保它始终处于最新版本。
对我来说,问题在于依赖项目的名称与package.json
中依赖的项目相同。