Я немного запутался с машинописными пространствами имен, модулями. Мне нужно решить простую задачу — создать два машинописных файла и использовать класс из одного в другом. Но как заставить его работать.
Структура :
installation :
typescript :
Person.ts
main.ts
Код main.ts
//Using this tag I am trying to load another file
/// <reference path = "Person.ts" />
var person:Person = new Person("Sergey" , "Sckoriy");
console.info(person.greet());
Код Person.ts
export class Person {
name : string;
surname : string;
constructor (name : string , surname : string){
this.name = name;
this.surname = surname;
}
greet():string {
var text:string = "Hello" + this.name;
return text;
}
}
Но, когда он компилируется с
..../tsc main.ts
есть такие ошибки как:
main.ts:3:12 - error TS2304: Cannot find name 'Person'.
3 var person:Person = new Person("Sergey" , "Sckoriy");
main.ts:3:25 - error TS2552: Cannot find name 'Person'. Did you mean 'person'?
3 var person:Person = new Person("Sergey" , "Sckoriy");
main.ts:3:5
3 var person:Person = new Person("Sergey" , "Sckoriy");
~~~~~~
'person' is declared here.
Found 2 errors.
На самом деле, я сослался на другой файл с тегом, но он не работает... Что здесь не так?
Этот вопрос относится к классу и модулю, но решение такое же.
import { Person } from './Person
Я уже пробовал это решение ранее, но компилятор сказал, что не может найти модуль Person. Я набрал - import {Person} from 'Person' . И я не могу понять, почему вы использовали и точку, и косую черту перед Person?
Объясните, пожалуйста, как импортировать не один класс, а все классы из './Person'?
./ должен ссылаться на относительный путь из вашей текущей папки. В противном случае он будет искать в корне вашей папки. Импортировать все можно как import * from ‘./person’
, но вам нужно будет создать пространство имен. Лучшее соглашение состоит в том, чтобы специально импортировать то, что вам нужно, чтобы компилятор мог решить, что взять с собой в конечный продукт, и, следовательно, получить файлы меньшего размера.
Возможный дубликат Как импортировать другие файлы TypeScript?