Angular中TypeScript示例报TS2306错误:model.ts非模块如何解决?
解决TypeScript模块导入TS2306错误的方法
TS2306错误的核心原因是:仅定义变量的TypeScript文件默认不被视为模块,TypeScript要求文件必须包含导出语句,才能被其他文件导入。修改tsconfig.json的strict或noImplicitAny配置无法解决这个问题,因为这属于模块规范范畴,和类型检查严格程度无关。
解决方法很直接,给model.ts中的变量添加导出声明即可,具体有几种方式:
单个变量导出:在变量前直接加
export关键字// model.ts export const userInfo = { name: 'Alice', age: 25 }; export const appVersion = '1.0.0';导入时对应使用:
// app.component.ts import { userInfo, appVersion } from '../src/app/model';批量导出:先定义变量,再统一导出
// model.ts const userInfo = { name: 'Alice', age: 25 }; const appVersion = '1.0.0'; export { userInfo, appVersion };默认导出:如果文件主要导出一个核心变量,可用
export default// model.ts const userInfo = { name: 'Alice', age: 25 }; export default userInfo;导入时无需解构:
// app.component.ts import userInfo from '../src/app/model';
内容的提问来源于stack exchange,提问作者gipcu
相关产品推荐
相关产品推荐

