键入脚本时遇到编译器错误。
[tsl] ERROR in /.../node_modules/@remirror/react-components/node_modules/@mui/base/useMenu/useMenu.d.ts(3,15)
TS1005: ',' expected.
ts-loader-default_e3b0c44298fc1c14
在文件中,导入导致错误:
import { type MenuUnstyledContextType } from '../MenuUnstyled';
'type' is declared but its value is never read.ts(6133)
Module '"../MenuUnstyled"' has no exported member 'type'. Did you mean to use 'import type from "../MenuUnstyled"' instead?ts(2614)
不过,这在typescript 3.8中似乎是有效的,并且应用程序使用typescript ^4.3.5
和@babel/preset-typescript ^7.14.5
。
https://www.typescriptlang.org/docs/handbook/modules.html#:~:text=使用类型脚本、语句或使用导入类型
// Explicitly pull out a value (getResponse) and a type (APIResponseType)
import { getResponse, type APIResponseType} from "./api";
有什么解决办法吗?
1条答案
按热度按时间5w9g7ksd1#
不过,这在 typescript 3.8中似乎是有效的
不幸的是,事实并非如此--你找到的文件非常具有误导性。
TypeScript 3.8引入了只使用
import type …
语法的类型导入:import type
只导入用于类型注解和声明的声明。它总是被完全擦除,因此在运行时没有残留。类似地,export type
只提供可用于类型上下文的导出,并且也从TypeScript的输出中擦除。*您要查找的语法是在TypeScript 4.5中引入的:
* 导入名称上的
type
修饰符 *[A type import] * 可以工作,但最好避免同一个模块使用两个import语句,这也是TypeScript 4.5允许在单独命名的import上使用
type
修饰符的部分原因,这样您就可以根据需要进行混合和匹配。*因此,请更新TypeScript的版本,或将导入声明更改为