我有一个 MY_FILE.ts
像这样的文件:
const someFunction = (param: MY_NAMESPACE.PARAM) : boolean => { // DO SOMETHING };
参数类型通过 namespace
访问叫 MY_NAMESPACE
我declare
在 MY_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
注意:在我的真实案例中,
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/