Я просматривал это репо на Github и пытался понять работу кода
Здесь автор (или программист) упомянул import * в нескольких местах, поэтому я пытаюсь понять и понять, как работает import *?
Сначала в Game.js файл его репо он упомянул / написал вот так
import * as actions from '../actions';
В VS Code, когда я нажимаю на '../actions с помощью команды, он перенаправляет меня в этот файл -> index.js
то в Index.js у них есть что-то вроде этого
import * as ActionTypes from './action-types';
когда я нажимаю на ./action-types, он перенаправляет меня сюда действие-типы.js
Я просмотрел документы firefox, но я не смог четко разобраться в первом примере, например, в одном: папка действий содержит несколько файлов и как импортировать * как действия из '../actions'; означает файл index.js
Пока я понимаю, что он вызвал / сослался на функции, используя actions.functionName() или ActionType.TypeName
Мой главный вопрос остается
как файл import * as actions from '../actions'; mean index.js?
Как "'../actions' означает файл index.js?" не имеет ничего общего с типом импорта *.
@Tholle Я думаю, что OP вызывает недоумение, так это то, что в этом исходном дереве ../actions с точки зрения этого исходного файла Game.js относится ко всему каталогу исходных файлов JavaScript.
Также важно отметить, что * является обычным символом wildcard при выполнении поиска или запросов. Он просто соответствует всему. В этом случае вы импортируете все, что соответствует *, из файла ../actions. Итак, просто все из файла. Я также предполагаю, что ../actions - это ленивый способ записи ../actions.js



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Когда вы ссылаетесь на каталог в операторе импорта, он просматривает и загружает файл index.js в этом каталоге. Обычно я экспортирую классы и функции в этот каталог в сгруппированном объекте, чтобы к ним можно было легко получить доступ:
Например, в index.js я экспортирую что-то вроде:
{
Class1,
method1
}
где каждый импортируется как таковой:
import Class1 from './Class1';
Таким образом, они просто группируют классы / методы / ... которые находятся в файлах в каталоге.
Тогда вы можете легко получить к нему доступ как таковой:
import { Class1, method1 } from './mymodule';
против
import Class1 from './mymodule/Class1';
Import в js - это новый синтаксис ES6 для импорта модуля, он имеет ту же работу, что и require, но легче фильтровать то, что вы хотите в модуле
В вашем примере вы import * as actions from '../actions'; вы импортируете все функции из файла ../actions
то же самое делать const actions = require('../actions')
но легче управлять тем, что ты хочешь
этот синтаксис работает не во всех браузерах, поэтому обязательно используйте транспилятор с babel или другими
вы также можете увидеть этот синтаксис в Python
Синтаксис import * as name импортирует все экспортированное содержимое файла javascript.
For example, if you want to import an entire module's contents, then access the
doAllTheAmazingThings()functionimport * as myModule from '/modules/my-module.js'; myModule.doAllTheAmazingThings();
От документы