#typescript
#typescript
Вопрос:
Итак, я получаю эту ошибку для моего файла typescript. Я не понимаю, почему это не работает. Насколько я понимаю, это то, что вам нужно сделать для экспорта класса. Но я продолжаю получать сообщение об ошибке, что мой файл не является модулем и не может быть импортирован.
Ошибка
TS2306 не является ошибкой модуля в файле typescript
export default class GridApi{
Hello(): string {
return "Hello"
}
}
Также вот мой tsconfig
{
"compilerOptions": {
"target": "es5",
"lib": [
"dom",
"dom.iterable",
"esnext"
],
"allowJs": true,
"skipLibCheck": true,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"strict": true,
"forceConsistentCasingInFileNames": true,
"noFallthroughCasesInSwitch": true,
"module": "CommonJS",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": false,
"jsx": "react"
},
"exclude": [
"node_modules",
"./node_modules",
"./node_modules/*"
]
}
Комментарии:
1. Как вы его импортируете? И компилируется ли он?
2. импортируйте GridApi из ‘./GridApi’; Он был случайным образом скомпилирован один раз. В противном случае я продолжаю получать сбой при компиляции
3. Ладно, это не так работает. Вам необходимо включить все соответствующие детали в минимальный, проверяемый, воспроизводимый, полный пример MVCE. Мы не сможем вам помочь, если вы просто сообщите нам о проблеме. Какую точную ошибку вы получаете при попытке скомпилировать свой ts?
Ответ №1:
Для вашего module
параметра установлено значение CommonJS
, которое вам не нужно. Модули CommonJS используют require
синтаксис, но вы используете import/export
. Вместо этого вы должны использовать ES6
модули:
"module": "ES6",
Комментарии:
1. Трудно понять, является ли это реальной проблемой, но это вполне может быть. Оставление
"module": "CommonJS"
просто гарантирует, что результирующий скомпилированный Javascript будет использоватьсяrequire(...)
на стороне импорта иexports.
на стороне экспорта.2. Да, я действительно хотел бы предоставить больше информации, но характер моей работы я не могу раскрыть практически ничего. Это сложно. Что касается предоставленного кода, то это примерно то, что я пытаюсь сделать с помощью простого импорта с другой стороны. Итак, с помощью этого совета я смог заставить его работать, но мне пришлось добавить export { GridApi} в модуль вместо использования. Не знаю, почему это работает, но я действительно новичок в ts, поэтому важно то, что я ценю помощь. Приветствия!