Есть два машинопись файлов:Тип ссылка без полного пространства имен
A.ts:
export class Person {
public name:string;
constructor(){}
}
и
B.ts:
import A = module("A");
var p: A.Person;
До сих пор все работает отлично.
Однако, когда я пытаюсь сделать ярлык для имени типа импортируемого из A.ts:
var Person = A.Person;
var pp: Person;
компилятор жалуется (на линии: «вар стр: Person»):
название 'лицо' не существует в текущей области
Как я могу достичь этого или подобного синтаксиса, чтобы избежать длинных пространств имен?
Я не знаю, как добиться того, что вы пытаетесь сделать, однако проблема, с которой вы сталкиваетесь в своей короткой нотации, заключается в том, что Person не является типом TypeScript, а ссылкой на класс. Следовательно, вместо записи 'var pp: Person;' вы могли бы использовать var var = new Person(); ' – thomaux
Итак, я могу создать экземпляр класса, но я не могу объявить переменную класса. Компилятор сможет вывести тип переменной в одном случае и не сможет сделать это в другом. Мне кажется, ошибка в компиляторе. Во всяком случае, второй пример («var pp = new Person();») работает. Благодарю. – ads