mirror of https://github.com/vuejs/core.git
fix(compiler-sfc): also search for `.tsx` when type import's extension is omitted (#10637)
Co-authored-by: liuxiaofei <liuxfb@digiwin.com> Closes #10635
This commit is contained in:
parent
c51be5c24d
commit
34106bc9c7
|
|
@ -561,6 +561,27 @@ describe('resolveType', () => {
|
|||
expect(deps && [...deps]).toStrictEqual(Object.keys(files))
|
||||
})
|
||||
|
||||
// #10635
|
||||
test('relative tsx', () => {
|
||||
const files = {
|
||||
'/foo.tsx': 'export type P = { foo: number }',
|
||||
'/bar/index.tsx': 'export type PP = { bar: string }',
|
||||
}
|
||||
const { props, deps } = resolve(
|
||||
`
|
||||
import { P } from './foo'
|
||||
import { PP } from './bar'
|
||||
defineProps<P & PP>()
|
||||
`,
|
||||
files,
|
||||
)
|
||||
expect(props).toStrictEqual({
|
||||
foo: ['Number'],
|
||||
bar: ['String'],
|
||||
})
|
||||
expect(deps && [...deps]).toStrictEqual(Object.keys(files))
|
||||
})
|
||||
|
||||
test.runIf(process.platform === 'win32')('relative ts on Windows', () => {
|
||||
const files = {
|
||||
'C:\\Test\\FolderA\\foo.ts': 'export type P = { foo: number }',
|
||||
|
|
|
|||
|
|
@ -956,8 +956,10 @@ function resolveExt(filename: string, fs: FS) {
|
|||
return (
|
||||
tryResolve(filename) ||
|
||||
tryResolve(filename + `.ts`) ||
|
||||
tryResolve(filename + `.tsx`) ||
|
||||
tryResolve(filename + `.d.ts`) ||
|
||||
tryResolve(joinPaths(filename, `index.ts`)) ||
|
||||
tryResolve(joinPaths(filename, `index.tsx`)) ||
|
||||
tryResolve(joinPaths(filename, `index.d.ts`))
|
||||
)
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue