如何让 ts-node 知道在“d.ts”文件中声明的命名空间?
How to make ts-node aware of a namespace declared in a `d.ts` file?
我有一个这样的 MY_FILE.ts
文件:
const someFunction = (param: MY_NAMESPACE.PARAM) : boolean => { // DO SOMETHING };
参数类型通过一个名为 MY_NAMESPACE
的 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
忽略了 tsconfig.json
的 include
选项,并且仅在起始文件中跟随 imports/refs(参见 https://github.com/TypeStrong/ts-node#help-my-types-are-missing)。
我使用 tsconfig.json
中 ts-node
的 files
选项解决了这个问题。
{
"compilerOptions": {...},
"ts-node": {
"files": true
},
"include": [
"./src/**/*.ts",
"./libs/**/*.d.ts"
]
}
还有其他解决方案(三斜杠指令、typeRoots)。只需阅读上面的 link。
我有一个这样的 MY_FILE.ts
文件:
const someFunction = (param: MY_NAMESPACE.PARAM) : boolean => { // DO SOMETHING };
参数类型通过一个名为 MY_NAMESPACE
的 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
忽略了 tsconfig.json
的 include
选项,并且仅在起始文件中跟随 imports/refs(参见 https://github.com/TypeStrong/ts-node#help-my-types-are-missing)。
我使用 tsconfig.json
中 ts-node
的 files
选项解决了这个问题。
{
"compilerOptions": {...},
"ts-node": {
"files": true
},
"include": [
"./src/**/*.ts",
"./libs/**/*.d.ts"
]
}
还有其他解决方案(三斜杠指令、typeRoots)。只需阅读上面的 link。