Istnieją dwa maszynopis pliki:Rodzaj odniesienia bez pełnej nazw
A.ts:
export class Person {
public name:string;
constructor(){}
}
i
B.ts:
import A = module("A");
var p: A.Person;
tej pory wszystko działa bez zarzutu.
Jednak, gdy próbuję zrobić skrót do nazwy typu sprowadzane z A.ts:
var Person = A.Person;
var pp: Person;
kompilator narzeka (w wierszu: „var str: Osoba”):
nazwa 'osoba' nie istnieje w bieżącym zakresie
Jak mogę osiągnąć tę lub podobną składnię, aby uniknąć długich przestrzeni nazw?
Nie wiem, jak osiągnąć to, co próbujesz zrobić, jednak problemem, z którym masz do czynienia ze stenogramem, jest to, że osoba nie jest typem TypeScript, ale odniesieniem do klasy. Dlatego zamiast pisać 'var pp: Person;' możesz użyć 'var pp = new Person();' – thomaux
Tak, mogę utworzyć instancję klasy, ale nie mogę zadeklarować zmiennej klasy. Kompilator będzie mógł określić typ zmiennej w jednym przypadku i nie będzie mógł tego zrobić w drugim. Wydaje mi się, że jest to błąd w kompilatorze. W każdym razie drugi przykład ("var pp = new Person();") działa. Dzięki. – ads