import * as a from 'a';
è la nuova sintassi di importazione "stile ES6" (disponibile dal Typescript 1.5).
Se possibile, questa sintassi dovrebbe essere ora utilizzata.
C'è comunque un avvertimento. La sintassi di importazione ES6 può importare solo i moduli (come definito da ES6) o gli oggetti (classi, interfacce, vars, ...) esportati come parte di un modulo.
Alcuni Librairies Javascript esporterà direttamente una funzione o di classe, e il file di definizione corrispondente tipicamente simile a questa:
declare module "my-class" {
class MyClass { ... }
export = MyClass
}
In questo caso, il "vecchio" sintassi di importazione è l'unico che può essere utilizzato
import MyClass = require("my-class");
il mancato utilizzo di questa sintassi si tradurrà in TS2497 errore
Verificare this issue per i dettagli e una possibile soluzione alternativa che sarebbe, nel caso precedente, aggiungere una dichiarazione di modulo vuota al file di definizione
declare module "my-class" {
class MyClass { ... }
module MyClass {} // <=
export = MyClass
}
fonte
2016-06-06 08:04:21
Quando richiede funziona per tutti i casi (come sembra) perché dovrei usare la sintassi 'importa da' allora? – Rsh
@Rsh perché vuoi essere il più compatibile ES6 possibile, in modo che Typescript rimanga un superset di Javascript, non una lingua dalla sua parte. –