-
Notifications
You must be signed in to change notification settings - Fork 47
Description
📌 Issue 标题:
VS Code 将 .uts 文件关联为 TypeScript 后仍无法正确识别类型定义(.d.ts)
🔧 问题描述:
我正在尝试在项目中使用一种自定义的文件扩展名 .uts(例如 example.uts),并通过 VS Code 的配置将其识别为 TypeScript 文件以获得相应的语法高亮和编辑支持。
为此,我在 .vscode/settings.json 中添加了如下配置:
{
"files.associations": {
"*.uts": "typescript"
}
}目前,项目中包含以下几类文件:
- 实现文件:
.ts、.uts - 类型声明文件:
.d.ts
🧪 遇到的问题:
✅ 正常现象:
-
在
.ts或.uts文件中使用类似import A from "xxx.xxx.A"的语句时,提示找不到模块"xxx.xxx.A"是预期行为。 -
为了解决上述错误,我在对应的
xxx.d.ts文件中添加了如下声明:declare module "xxx.xxx.A" {}
-
当我将
.uts文件重命名为.ts后,该错误 不再出现,说明类型声明是有效的。
❌ 异常现象:
-
当文件保留为
.uts扩展名时,即使配置了"*.uts": "typescript",VS Code 仍然提示:找不到模块“xxx.xxx.A”或其相应的类型声明。
-
这表明 VS Code 虽然对
.uts文件提供了 TypeScript 的语法高亮和部分编辑功能,但在类型解析方面并未完全将其视为.ts文件处理。
💡 我的临时解决方案:
为了规避这个问题,我尝试了以下方式:
- 将
xxx.d.ts声明文件移出tsconfig.json的include范围; - 然后在编辑
.uts文件的同时,手动打开并保持xxx.d.ts文件处于打开状态; - 这样可以让
.uts文件成功识别到该模块声明,从而消除报错。
🚨 我的目标:
我希望能够在不依赖手动打开 .d.ts 文件的前提下,让 VS Code 完整地将 .uts 文件当作标准的 .ts 文件进行处理,包括:
- 正确识别全局模块声明(如
declare module "xxx.xxx.A") - 自动加载项目中的
.d.ts文件用于类型推导
🧩 我的问题:
- 是否存在某种配置方式(例如修改
tsconfig.json、VS Code 插件或其他设置)可以实现这一目标? - 如果当前 VS Code 对
files.associations的支持有限,是否有其他替代方案可以实现.uts文件与.ts文件相同的行为?
📦 附加信息:
- Visual Studio Code 版本:1.101.0 (user setup)
- 提交哈希:dfaf44141ea9deb3b4096f7cd6d24e00c147a4b1
- 发布日期:2025-06-11T15:00:50.123Z
- Electron:35.5.1
- Chromium:134.0.6998.205
- Node.js:22.15.1
- V8:13.4.114.21-electron.0
- 操作系统:Windows_NT x64 10.0.26100
- TypeScript 版本:
^5.8.3
EN issue
Hi everyone,
I'm reaching out for help regarding an issue I'm facing when using custom .uts files in a TypeScript project with Visual Studio Code.
To summarize:
- I have configured VS Code to treat
.utsfiles as TypeScript by setting:{ "files.associations": { "*.uts": "typescript" } } - My project includes both
.ts,.uts, and corresponding.d.tsdeclaration files. - When importing modules like
import A from "xxx.xxx.A", the error "Cannot find module 'xxx.xxx.A' or its type declarations" appears in.utsfiles, even though the declaration exists inxxx.d.ts. - Renaming the file to
.tsresolves the issue, suggesting that VS Code doesn't fully treat.utsfiles like standard.tsfiles — especially in terms of type resolution and declaration loading. - As a workaround, I need to manually keep the
.d.tsfile open while editing.utsfiles, which is not ideal.
I would really appreciate any guidance on how to make VS Code (or TypeScript language service) treat .uts files exactly like .ts files without such workarounds.
My environment:
- VS Code Version: 1.101.0
- TypeScript Version: ^5.8.3
- OS: Windows 10 (build 26100)
Questions I'd love your input on:
- Is there a configuration in
tsconfig.jsonor elsewhere that can enable full TypeScript support for custom extensions like.uts? - Are there known limitations or alternative approaches to achieve this?
Thanks in advance for any suggestions or insights!
Best regards,
[Your Name / Handle]
[Optional: Your Project Name or Link]