Typescript 使用requirejs从共享库中声明类型脚本

Typescript 使用requirejs从共享库中声明类型脚本,typescript,typescript-typings,Typescript,Typescript Typings,我正在尝试编写一个typescript库,该库在其他几个typescript应用程序之间共享。为此,我将每个库作为其自己的节点模块,并将库设置为发出其声明文件 要测试,请使用一个文件设置共享库: lib\guid.ts lib\tsconfig.json 我最终得到一个声明文件,该文件如下所示: lib\lib-b.d.ts 最后,我将节点模块设置为包含键入信息: lib\package.json 现在,在使用库的应用程序中,我使用npm将其引入: app\package.json 在其中一个文

我正在尝试编写一个typescript库,该库在其他几个typescript应用程序之间共享。为此,我将每个库作为其自己的节点模块,并将库设置为发出其声明文件

要测试,请使用一个文件设置共享库:

lib\guid.ts lib\tsconfig.json 我最终得到一个声明文件,该文件如下所示:

lib\lib-b.d.ts 最后,我将节点模块设置为包含键入信息:

lib\package.json 现在,在使用库的应用程序中,我使用npm将其引入:

app\package.json 在其中一个文件中,我尝试像这样使用库:

import { Guid } from 'lib-b';
但这给了我以下错误:

error TS2306: File '.../WebApp/node_modules/lib-b/lib/lib-b.d.ts' is not a module.
我一直在四处寻找,但我发现的大多数示例都是关于为已经存在的JS库编写打字的——我找不到太多关于使用现有typescript代码中的声明文件的内容。声明文件是否应该在其他应用程序中可用?有没有其他方法可以构建可重用的typescript库

我最终得到一个声明文件,该文件如下所示:

建议使用
commonjs
并遵循npm
node\u模块
模式。您将得到如下文件:

export class Guid {
    static EmptyGuid(): string;
}
更多
这是一个快速启动视频

其中是
“file:../LibB”
?应用程序中的文件条目指向共享库模块。您需要使用amd还是可以使用commonjs?
{
  "name": "lib-b",
  "version": "1.0.0",
  "description": "",
  "main": "./lib/lib-b.js",
  "typings": "./lib/lib-b.d.ts",
  "files": [
    "lib"
  ], 
  "author": "",
  "license": "ISC"
}
{
  "name": "web-app",
  "version": "1.0.0",
  "description": "",
  "main": "./lib/index.html",  
  "author": "",
  "license": "ISC",
  "dependencies": {
    "lib-b": "file:../LibB"
  }
}
import { Guid } from 'lib-b';
error TS2306: File '.../WebApp/node_modules/lib-b/lib/lib-b.d.ts' is not a module.
export class Guid {
    static EmptyGuid(): string;
}