typescript - 如何让 ts-node 知道在 `d.ts` 文件中声明的命名空间?

标签 typescript namespaces ts-node .d.ts babel-node

我有一个 MY_FILE.ts像这样的文件:

const someFunction = (param: MY_NAMESPACE.PARAM) : boolean => { // DO SOMETHING };
参数类型通过 namespace 访问叫 MY_NAMESPACEdeclareMY_NAMESPACE.d.ts文件。像这样:
src/MY_NAMESPACE.d.ts
declare namespace MY_NAMESPACE {
  type PARAM: SOME_TYPE
}
我需要运行那个 MY_FILE.ts文件,其中包含一个脚本。
这工作正常:
npx babel-node src/MY_FILE.ts --extensions ".ts"
还有这个不起作用 (我希望它可以正常工作):
npx ts-node src/MY_FILE.ts
我收到此错误:error TS2503: Cannot find namespace MY_NAMESPACE enter image description here
注意:在我的真实案例中,MY_NAMESPACE被称为 TYPES .
我怎样才能让它与 ts-node 一起工作?

最佳答案

我有一个类似的问题。问题是,ts-node忽略 include -选项tsconfig.json并且仅在起始文件中遵循导入/引用(请参阅 https://github.com/TypeStrong/ts-node#help-my-types-are-missing )。
我通过使用 files 解决了这个问题ts-node 的选项在 tsconfig.json .

{
    "compilerOptions": {...},
    "ts-node": {
        "files": true
    },
    "include": [
        "./src/**/*.ts",
        "./libs/**/*.d.ts"
    ]
}
还有其他解决方案(三斜线指令,typeRoots)。只需阅读上面的链接。

关于typescript - 如何让 ts-node 知道在 `d.ts` 文件中声明的命名空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65560562/

相关文章:

javascript - 使用 typescript 定义 Angular Directive(指令)的最简单方法和示例

c++ - 是否将 namespace 范围的文件本地 (.cpp) 常量放置在匿名 namespace 中

c# - 当我尝试使用自定义服务器控件(在 App_Code 目录中)时全局命名空间出现问题

node.js - ts-node-dev 重新启动服务器时运行脚本

node.js - 如何将 WebWorker 与 ts-node 一起使用? (没有网络包)

typescript - 在 Angular Material 2 中创建自定义主题

javascript - Angular2 - 类属性未定义,即使它正在设置

带有类的 PHP 命名空间和 Include()

javascript - 如何有条件地将名称附加到字符串?

javascript - 循环进入包含对象的可观察数组错误: Cannot find a differ supporting object '[object Object]'