Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Импорт класса (https://javascript.ru/forum/misc/85739-import-klassa.html)

Steh 02.02.2024 21:23

Импорт класса
 
Привет, дошел до главы с импортом классов, и не получается.

Упростил уже

export default class User {
}

Тесты делаю в php html на локалхосте и поставил от автора тестовый сервак nodejs . Скрипты собирал в bundle.js и тогда они нормально крепились. Но с классом что-то пошло не так.

пробовал

import {User} from 'class.js';
import User from 'class.js';

дает
Cannot use import statement outside a module (at (index):19:1)


из бандла пробовал импортировать разные классы - то же самое

при ставке
<script defer src="bundle.js"></script>

класс not defined

при импорте в package тип Модуль прописан. При вставке скрипта тоже прописывал. Не понимаю, что делать

Steh 02.02.2024 21:30

вот в бандл закидывают
index.js
import Employee from './Employee.js';


Employee.js
export default class Employee {
	constructor(name, salary, coeffs) {
		this.name = name;
		this.salary = salary;
		this.coeffs = coeffs;
	}

	getTotal() {
		return this.coeffs.reduce((res, coeff)=> {
			return res + this.salary * coeff;
		}, 0);
	}
}


В абсолютно чистый хтмл закидываю, название файла делаю прописным, пустой класс никак не идет, странно

Steh 02.02.2024 21:56

5 вариантов путей со скобками и без пробовал, не помогает
с заглавными и прописными именами тоже

roland 02.02.2024 22:11

Цитата:

Сообщение от Steh (Сообщение 554683)
Cannot use import statement outside a module

Добавьте атрибут "type" со значением "module" для элемента script в html-файле, иначе вы не сможете использовать import.

Steh 02.02.2024 22:20

сработало, да, не туда втыкал!

Steh 02.02.2024 22:23

<script type="module">

import Employee from './Employee.js';

let employee = new Employee('john', 1000, [1.1,
	1.2, 1.3]);
let total = employee.getTotal();
console.log(employee.getTotal());
</script>


Часовой пояс GMT +3, время: 19:59.