如何解决如何让 ts-node 知道在 `d.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)。只需阅读上面的链接。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。