🔎 搜索词
outdir声明 dts tsconfig.json moduleresolution bundler node16
🕗 版本与回归信息
- 这是我尝试的每个版本中的行为
⏯ Playground链接
N/A
💻 代码
/// <reference path="../fourslash.ts" />
// @Filename: /tsconfig.json
////{
//// "compilerOptions": {
//// "strict": true,
//// "moduleResolution": "node16",
//// "module": "node16",
//// "rootDir": "./src",
//// "outDir": "./dist",
//// "declaration": true
//// },
//// "include": ["src/*"]
////}
// @Filename: /package.json
////{
//// "name": "a",
//// "exports": {
//// ".": "./dist/index.js",
//// "./thing": "./dist/thing.js"
//// }
////}
// @Filename: /src/index.ts
////export { thing } from /*src*/"a/thing";
// @Filename: /src/thing.ts
////export const thing = "thing";
// @Filename: /dist/index.d.ts
////export { thing } from /*dist*/"a/thing";
// @Filename: /dist/thing.d.ts
////export declare const thing = "thing";
verify.baselineGoToDefinition("src", "dist");
🙁 实际行为
标记 /*src*/
的定义被正确解析,但标记 /*dist*/
的定义没有。标记
🙂 预期行为
这里两个标记都应该可以工作。由于这个复现示例没有任何源/声明Map,我可能会期望标记 /*dist*/
的解析结果与标记 /dist/thing.d.ts
相同。
关于问题的附加信息
我还想知道在 outDir
内的文件(对于不使用 tsc
进行发射的库来说很常见)如果没有直接Map到源文件,会发生什么情况。
cc @andrewbranch
值得注意的是,当找不到定义时,测试运行器会崩溃:
1) fourslash-server tests
tests/cases/fourslash/server/definitionSpan.ts
fourslash-server test definitionSpan.ts runs correctly:
TypeError: Cannot read properties of undefined (reading 'start')
at SessionClient.decodeSpan (src/harness/client.ts:656:18)
at SessionClient.getDefinitionAndBoundSpan (src/harness/client.ts:406:28)
2条答案
按热度按时间vxf3dgd41#
这是一个go to definition问题还是一个模块解析问题?如果是模块解析问题,它将在正常的编译器测试中出现。
jfewjypa2#
这是一个定义问题,如果这不够清楚的话,我很抱歉。我在这里只给你发送了一份副本,因为它涉及到模块解析模式。