typescript .d.ts 文件无法被 typescript 但 vsc 识别
typescript .d.ts file not recognized by typescript but vsc
更新:
它不是打字稿,而是ts-node“问题”
我自己回答了,所以如果你仍然对“问题”感兴趣 - 进一步阅读 :)
抱歉造成混淆
也许我对 index.d.ts 文件有一个完全错误的想法..但我的想法是,我可以在其中声明类型,然后它们是“全局定义的”,所以我不必重新声明它们我在任何地方都使用它们(文件 a.ts 和 b.ts)
结构:
root
src
a.ts
b.ts
node_modules
tsconfig.json
index.d.ts
package.json
例如我有一个 index.d.ts 文件:
type XYZType = { test: string }
在我的 ./src/a.ts 中我有:
const x: XYZType = { test: 'hello' }
console.log(x)
在我的 ./src/b.ts 中我有:
const x: XYZType = { test: 'world' }
console.log(x)
但是 vsc(Visual Studio 代码)不会 抱怨缺少 XYZType 类型..但是当我尝试让 typescript 编译时,它确实...:
error TS2304: Cannot find name 'XYZType'.
并指向文件 a.ts 和 b.ts
所以..很明显..看起来我做错了什么..
我遵循了 levelup link
中的小例子
所以我的tsconfig.json看起来像
{
"compilerOptions": {
"module": "commonjs",
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"target": "es6",
"noImplicitAny": true,
"moduleResolution": "node",
"sourceMap": true,
"outDir": "dist",
"baseUrl": ".",
"paths": {
"*": ["node_modules/*", "src/types/*"]
}
},
"include": ["src/**/*"]
}
我正在使用:
"ts-node": "^9.0.0",
"typescript": "^4.0.3"
我发现很多堆栈溢出请求具有相同的标题..但内容完全不同(自己的包声明?)所以这就是为什么它让我感到困惑,我觉得我正在寻找的方法完全错误
希望有人能帮忙解释一下哪里出了问题:/
提前致谢:)
好的哇 - 这不是 typescript,而是 ts-node 问题
在示例中 link package.json 脚本“dev”的设置类似于
"scripts": {
"dev": "nodemon --watch 'src/**/*.ts' --exec 'ts-node' src/index.ts",
}
但必须是:
"scripts": {
"dev": "nodemon --watch 'src/**/*.ts' --exec 'ts-node' --files src/index.ts",
}
('--files'必须加上)
抱歉造成混淆,但希望它能帮助 运行 遇到相同问题的人 :)
更新:
它不是打字稿,而是ts-node“问题”
我自己回答了,所以如果你仍然对“问题”感兴趣 - 进一步阅读 :)
抱歉造成混淆
也许我对 index.d.ts 文件有一个完全错误的想法..但我的想法是,我可以在其中声明类型,然后它们是“全局定义的”,所以我不必重新声明它们我在任何地方都使用它们(文件 a.ts 和 b.ts)
结构:
root
src
a.ts
b.ts
node_modules
tsconfig.json
index.d.ts
package.json
例如我有一个 index.d.ts 文件:
type XYZType = { test: string }
在我的 ./src/a.ts 中我有:
const x: XYZType = { test: 'hello' }
console.log(x)
在我的 ./src/b.ts 中我有:
const x: XYZType = { test: 'world' }
console.log(x)
但是 vsc(Visual Studio 代码)不会 抱怨缺少 XYZType 类型..但是当我尝试让 typescript 编译时,它确实...:
error TS2304: Cannot find name 'XYZType'.
并指向文件 a.ts 和 b.ts
所以..很明显..看起来我做错了什么..
我遵循了 levelup link
中的小例子所以我的tsconfig.json看起来像
{
"compilerOptions": {
"module": "commonjs",
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"target": "es6",
"noImplicitAny": true,
"moduleResolution": "node",
"sourceMap": true,
"outDir": "dist",
"baseUrl": ".",
"paths": {
"*": ["node_modules/*", "src/types/*"]
}
},
"include": ["src/**/*"]
}
我正在使用:
"ts-node": "^9.0.0",
"typescript": "^4.0.3"
我发现很多堆栈溢出请求具有相同的标题..但内容完全不同(自己的包声明?)所以这就是为什么它让我感到困惑,我觉得我正在寻找的方法完全错误
希望有人能帮忙解释一下哪里出了问题:/
提前致谢:)
好的哇 - 这不是 typescript,而是 ts-node 问题
在示例中 link package.json 脚本“dev”的设置类似于
"scripts": {
"dev": "nodemon --watch 'src/**/*.ts' --exec 'ts-node' src/index.ts",
}
但必须是:
"scripts": {
"dev": "nodemon --watch 'src/**/*.ts' --exec 'ts-node' --files src/index.ts",
}
('--files'必须加上)
抱歉造成混淆,但希望它能帮助 运行 遇到相同问题的人 :)