ci sono due file dattiloscritto:Tipo di riferimento senza la piena namespace
A.ts:
export class Person {
public name:string;
constructor(){}
}
e
B.ts:
import A = module("A");
var p: A.Person;
Finora tutto funziona bene.
Tuttavia, quando cerco di fare una scorciatoia per il nome del tipo importato dai A.ts:
var Person = A.Person;
var pp: Person;
il compilatore si lamenta (sulla linea: "var pp: Persona"):
il nome 'persona' non esiste nell'ambito corrente
Come posso ottenere questa o una sintassi simile, per evitare lunghi spazi dei nomi?
Non so come ottenere ciò che si sta tentando di fare, tuttavia il problema che si ottiene con la notazione abbreviata è che Person non è un tipo TypeScript ma un riferimento a una classe. Quindi, invece di scrivere 'var pp: Person;' potresti usare 'var pp = new Person();' – thomaux
Quindi, posso creare un'istanza della classe ma non posso dichiarare una variabile della classe. Il compilatore sarà in grado di dedurre il tipo per la variabile in un caso e incapace di farlo nell'altro. Mi sembra un bug nel compilatore. Ad ogni modo il secondo esempio ('var pp = new Person();') funziona. Grazie. – ads