Javascript 运行时未解析Typescript命名空间

Javascript 运行时未解析Typescript命名空间,javascript,node.js,typescript,Javascript,Node.js,Typescript,我对Java脚本模块构造和Typescript都非常陌生 我正在尝试导入一个名称空间以及该名称空间下的所有导出成员 我试图从文件中引用/导入的类型脚本为 在这个ts文件中,一个名为“cmis”的名称空间如下导出 export namespace cmis { 我正在尝试在与中相同的另一个文件中引用/导入此文件 像这样从“cmis”导入{cmis} 我在npm中完成了所有依赖项解析,VisualStudio代码中的设计时依赖项工作正常 mypackage.json { "title

我对Java脚本模块构造和Typescript都非常陌生

我正在尝试导入一个名称空间以及该名称空间下的所有导出成员

我试图从文件中引用/导入的类型脚本为

在这个ts文件中,一个名为“cmis”的名称空间如下导出

export namespace cmis {
我正在尝试在与中相同的另一个文件中引用/导入此文件

像这样
从“cmis”导入{cmis}

我在npm中完成了所有依赖项解析,VisualStudio代码中的设计时依赖项工作正常

mypackage.json

   {
  "title": "sdm-nodejsclient",
  "name": "cmsdm-nodejsclientis",
  "version": "0.0.1",
  "description": "a CMIS client library written in Typescript for node and the browser",
  "author": {
    "name": "Saurav Sarkar",
    "email": "saurav.sarkar1@gmail.com"
  },
  "dependencies": {
    "@types/jest": "^25.1.3",
    "@types/node": "^13.7.4",
    "chai": "^4.2.0",
    "cmis": "~1.0.2",
    "cross-fetch": "~1.1.1",
    "es6-promise": "~4.2.4",
    "isomorphic-base64": "~1.0.2",
    "isomorphic-form-data": "~1.0.0",
    "jest": "^25.1.0",
    "mocha": "^7.0.1",
    "ts-jest": "^25.2.1",
    "url-search-params-polyfill": "~2.0.2"
  },
  "devDependencies": {
    "@types/chai": "~4.1.2",
    "@types/mocha": "~2.2.48",
    "@types/node": "~8.5.2",
    "chai": "~4.1.2",
    "cmis": "~1.0.2",
    "mocha": "~5.0.0",
    "ts-loader": "~2.0.3",
    "ts-node": "~3.0.6",
    "typedoc": "~0.10.0",
    "typescript": "~2.7.1",
    "uglify-js": "~3.3.7",
    "uglifyjs-webpack-plugin": "~1.1.8",
    "webpack": "~3.10.0"
  }
}
但每当我尝试运行相同的代码时,它都会失败,出现TypeError:无法读取未定义的的属性“CmisSession”

let session = new cmis.CmisSession(url);
源库中的index.d.ts

export * from './src/cmis';
因此,节点运行时无法解决导入的cmis命名空间,vClearly似乎是运行时依赖性问题

致以最良好的祝愿,
Saurav

名称空间不是TypeScript中的值,因此它不应该包含任何实现,只包含类型定义

例如:

//types.d.ts
//这没关系
声明命名空间MySpace{
类型Calc=(a:编号,b:编号)=>编号;
}
Calc不是函数,只是类型。我们可以使用类型来说明编译器是什么(例如函数)。但是我们不能执行类型类型类似于元数据,它在编译过程中从代码中删除。这是wy
CmisSession
未定义

//types.d.ts
//这是错误的!类型定义包含实现。
声明命名空间MySpace{
类型Calc=(a:number,b:number)=>{返回a+b;};
}
实现不应与类型定义混合。 实现功能计算:

//index.ts
const-calc:MySpace.calc=(a,b)=>a+b;

不需要在实现中声明类型。这就是名称空间出现并帮助描述代码的原因。

@e.vyushin…感谢您查找此内容…但是如果您看到cmis.ts的代码,我不知道;没有在名称空间内执行任何实现。实际上,名称空间“cmis”未声明,但仅导出…可能是我缺少了一些简单的内容cmis包。json不包含一些必要的属性,例如
main
类型
。这可能会导致导入错误。尝试直接从dist导入cmis
typescript从“./node_modules/cmis/dist/cmis”导入{cmis};const session=new cmis.CmisSession('url')