Многоуровневый импорт / экспорт

У меня есть набор для автоматизации тестирования, выполненный на javascript. Я нахожусь в процессе преобразования проекта с javascript в машинописный текст. В исходном проекте структура следующая:

helpers

utilities

salesforce

navigation.js

indices

utilityIndex.js

tests

myExampleTest.js

navigation.js

var files = require('../../../indices/fileIndex.js');
var utility = require('../../../indices/utilityIndex.js);
var pageObjectsSF = require('../../../indices/pageObjectSFIndex.js');

module.exports = {
  "NavigateToAccountFromContact": function (browser) {
    browser
      .click(pageObjectsSF.contact.details.detailsTab.selector, pageObjectsSF.contact.details.detailsTab.type, `Click Details Tab`)
      .click(pageObjectsSF.contact.details.accountName.selector, pageObjectsSF.contact.details.accountName.type, `Click Account Name`);
      utilities.generic.logging();
  }
}

Что было преобразовано в: navigation.ts

    import * as files from '../../../indices/fileIndex';
    import * as utilities from '../../../indices/utilityIndex';
    import * as pageObjectsSF from '../../../indices/pageObjectSFIndex';
    
    export = {
      "NavigateToAccountFromContact": function (browser) {
        browser
          .click(pageObjectsSF.contact.details.detailsTab.selector, pageObjectsSF.contact.details.detailsTab.type, `Click Details Tab`)
          .click(pageObjectsSF.contact.details.accountName.selector, pageObjectsSF.contact.details.accountName.type, `Click Account Name`);
           utilities.generic.logging();
      }
    }

УтилитаIndex.js

exports.navigation = require('../helpers/utilities/salesforce/navigation.ts');
exports.dataValidation = require('../helpers/utilities/salesforce/dataValidation');
exports.search = require('../helpers/utilities/salesforce/search');
exports.generic = require('../helpers/utilities/salesforce/generic');

myExampleTest.ts

//Declare File Dependencies
var files = require('../../indices/fileIndex.js');
var utilities = require('../../indices/utilityIndex.js');
var query = require('../../indices/queryIndex.js');

module.exports = {
  '@tags': ['Tags'],
  'TestName': function (browser) { 
    //Test Logic Here
  }
};

который был преобразован в: myExampleTest.ts

//Declare File Dependencies
import * as files from '../../indices/fileIndex';
import * as utilities from '../../indices/utilityIndex';
import * as query from '../../indices/queryIndex';

export = {

  '@tags': ['Tags'],
  'TestName': function (browser) { 
    //Test Logic Here
  }
};

Я еще не преобразовал utilityIndex в файл машинописного текста, но когда я пытаюсь запустить файлы, я получаю следующую ошибку:

C:\GitRepos\RegressionTesting\helpers\utilities\salesforce\navigation.ts:1
(function (exports, require, module, __filename, __dirname) { import * as files from '../../../indices/fileIndex';
                                                              ^^^^^^

SyntaxError: Unexpected token import
    at createScript (vm.js:80:10)
    at Object.runInThisContext (vm.js:152:10)
    at Module._compile (module.js:605:28)
    at Object.Module._extensions..js (module.js:652:10)
    at Module.load (module.js:560:32)
    at tryModuleLoad (module.js:503:12)
    at Function.Module._load (module.js:495:3)
    at Module.require (module.js:585:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (C:\GitRepos\RegressionTesting\indices\utilityIndex.js:1:84)

Изначально в utilityIndex.js, а не в: exports.navigation = require('../helpers/utilities/salesforce/navigation.ts');

У меня был exports.navigation = require('../helpers/utilities/salesforce/navigation');

но получал Error: Cannot find module 'indices/utilityIndex'

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
56
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы не можете запускать файлы TypeScript напрямую с помощью Node. Либо используйте tsc, чтобы скомпилировать их в JavaScript, либо используйте среду выполнения, такую ​​как ts-узел.

Ответ принят как подходящий

Оказалось, что у связанного js-файла с «../helpers/utilities/salesforce/navigation.ts» не было правильного пути. Как только я исправил это, проблема была решена. Спасибо

Вы можете либо опустить расширение, либо указать .js. .ts - это ошибка.

Aluan Haddad 10.09.2018 17:57

Другие вопросы по теме