2015-11-19 2 views
4

Я пытаюсь понять, какой другой синтаксис es из import делает и когда мне нужно их использовать.Заявление о выдаче машинописных записей

Я использую машинопись 1.6 (последняя версия на данный момент).

Я видел несколько примеров импорта. Один выглядит следующим образом:

import {Aurelia} from "aurelia-framework"; 

Который дает мне доступ к Aurelia от Aurelia Framework. Я более или менее получаю этот, но я не уверен, с какой стороны в кавычках смотрит.

Вот еще один, который ReSharper вставлен в мой код:

import myJsServiceActions = require("../../service_actions/myJsFile"); 

Это также дает мне доступ к вещам в myJsFile. Но синтаксис совсем другой. И это похоже на ссылку пути в кавычках.

Также этот не использует фигурные скобки {}, подобные первой. Когда я пытаюсь добавить что-то вроде {ServiceActions} (модуль в этом файле), он дает ошибку на require, говоря, что ожидается строковый литерал.

В чем отличие этого второго использования (от первого)?

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

/// <reference path="myModules.d.ts" /> 
.... 
import gt = module('greeter'); 

И последняя , как найти материал в кавычках? Я попытался это:

import breeze from "breeze"; 

и я получаю ошибку:

Cannot find module "breeze"

Но в моих config.js они определены рядом с Афоризм:

map: { 
    //.... 
    "aurelia-framework": "github:aurelia/[email protected]", 
    "breeze": "npm:[email protected]", 
    //..... 
    } 

Это мне кажется что если импорт каркасов aurelia работает, то ветер тоже должен работать. Но я предполагаю, что это мое незнание того, как работают «импорт», которые вызывают проблему.

+0

Вы упомянули «config.js», что это? Вы говорите о tsconfig.json? – gilamran

+0

@gilamran - Я не уверен, что это такое, но, похоже, он управляет моими зависимостями. Он создается, когда я запускаю 'jspm init'. Я предположил, что это общий менеджер зависимости от веб-разработки. Что-то, что позволяет вам ссылаться на вещи по имени (бриз) вместо полного имени ([email protected]) – Vaccano

+0

jspm использует systemjs для управления всеми зависимостями вашего приложения и загрузки их при необходимости. Это не связано с машинописным текстом. – gilamran

ответ

2

where the part in the quotes is looking up from.

  • Сначала все, что имеет declare module "aurelia-framework"
  • Затем в зависимости от разрешения модуля либо файл aurelia-framework вверх по дереву каталогов (classic разрешения модуля) или Node style lookup вверх по дереву каталогов (если --module commonjs или разрешение модуля явного узла).

Here is another one that resharper inserted into my code:

Относительные файлы импорта по сравнению .d.ts или .ts или .tsx импорта.

Больше

import foo from "foo" vs import foo = require('foo')

Первый импорт ES6 стиль (как поддерживается ES6), а второй является nodejs импорта стиль (по образцу var foo = require('foo'))

import breeze from "breeze";

Вы, вероятно, хотите сделать import * as breeze from "breeze"

+0

импорт * как ветер от «бриза» сделал трюк для меня. Мне пришлось вставить бриз в кавычки («бриз») в определение «объявить модуль» в breeze.d.ts. Это своего рода хакерство, потому что на новой машине выведенное определение не будет иметь обертку цитаты. Но без котировок он жалуется, что не может найти модуль «бриз». – Schadensbegrenzer

Смежные вопросы