Skip to content

Commit 34106bc

Browse files
authoredApr 9, 2024··
fix(compiler-sfc): also search for .tsx when type import's extension is omitted (#10637)
Co-authored-by: liuxiaofei <liuxfb@digiwin.com> Closes #10635
1 parent c51be5c commit 34106bc

File tree

2 files changed

+23
-0
lines changed

2 files changed

+23
-0
lines changed
 

‎packages/compiler-sfc/__tests__/compileScript/resolveType.spec.ts

+21
Original file line numberDiff line numberDiff line change
@@ -561,6 +561,27 @@ describe('resolveType', () => {
561561
expect(deps && [...deps]).toStrictEqual(Object.keys(files))
562562
})
563563

564+
// #10635
565+
test('relative tsx', () => {
566+
const files = {
567+
'/foo.tsx': 'export type P = { foo: number }',
568+
'/bar/index.tsx': 'export type PP = { bar: string }',
569+
}
570+
const { props, deps } = resolve(
571+
`
572+
import { P } from './foo'
573+
import { PP } from './bar'
574+
defineProps<P & PP>()
575+
`,
576+
files,
577+
)
578+
expect(props).toStrictEqual({
579+
foo: ['Number'],
580+
bar: ['String'],
581+
})
582+
expect(deps && [...deps]).toStrictEqual(Object.keys(files))
583+
})
584+
564585
test.runIf(process.platform === 'win32')('relative ts on Windows', () => {
565586
const files = {
566587
'C:\\Test\\FolderA\\foo.ts': 'export type P = { foo: number }',

‎packages/compiler-sfc/src/script/resolveType.ts

+2
Original file line numberDiff line numberDiff line change
@@ -956,8 +956,10 @@ function resolveExt(filename: string, fs: FS) {
956956
return (
957957
tryResolve(filename) ||
958958
tryResolve(filename + `.ts`) ||
959+
tryResolve(filename + `.tsx`) ||
959960
tryResolve(filename + `.d.ts`) ||
960961
tryResolve(joinPaths(filename, `index.ts`)) ||
962+
tryResolve(joinPaths(filename, `index.tsx`)) ||
961963
tryResolve(joinPaths(filename, `index.d.ts`))
962964
)
963965
}

0 commit comments

Comments
 (0)
Please sign in to comment.