Откройте файл package.json
и проверьте узел devDependencies
. У него есть машинописная версия, используемая в проекте, как показано ниже.
"typescript": "^2.4.0",
Вы также можете использовать командную строку, как предложил Sajeetharan в ответе ниже.
Я думаю, что хороший способ определить интерфейс выглядит следующим образом
Интерфейс - это контракт, определяющий набор методов, полей и свойств, которые будут доступны для любого реализующего объекта
Фактическая реализация от языка к языку может иметь забавные небольшие различия, но принцип остается в силе.
Я подумал о добавлении реализованных интерфейсов в список выше, но оставил его, потому что он казался слишком специфичным для языка. Я думаю, что это нормально, потому что конечный эффект почти такой же. Добавление большего количества интерфейсов - это просто добавление в контракт дополнительных методов, полей и свойств.
В общем, интерфейс - это просто то, «как класс выглядит для остального мира».
Например, этот класс в Java:
class MyClass {
private string data;
private string Foo() {...}
public void Bar(string s){...}
}
может иметь просто функция Bar в его интерфейсе. Внутри у него есть несколько других членов, но они частные, поэтому они не видны внешнему миру.
Чаще интерфейсы также являются конкретными типами на языке, например, в следующем примере MyClass реализует интерфейс IMyClass:
interface IMyClass {
public void Bar(string s);
}
class MyClass implements IMyClass {
private string data;
private string Foo() {...}
public void Bar(string s){...}
}
Интерфейс теперь выражен в коде, так что каждый раз, когда ожидается переменная типа IMyClass, можно использовать объект типа MyClass, потому что он реализует правильный интерфейс.
Интерфейс класса - это его «публичное лицо», которое могут видеть другие классы. Он отделяет реализацию класса от способа взаимодействия с другими классами. Таким образом, можно заменять разные реализации, и другим классам не нужно ничего знать о том, что стоит за интерфейсом.
Интерфейс может включать как данные, так и функции-члены.
Это внешнее лицо мира. Обычно он предоставляет набор общедоступных методов (членов).
Технически, однако, это две разные вещи
Интерфейс будет публичным контрактом. например
interface ILogger
{
void Log(String str);
}
Класс затем «реализует» этот интерфейс - таким образом, говоря, что он предоставляет эту функциональность
class ConsoleLogger : ILogger
{
public ConsoleLogger() { ... }
public void Log(String str)
{
Console.WriteLine("Console Logger " + str);
}
// private stuff
}
Пользователи этой службы / интерфейса не должны беспокоиться о том, как он реализован или кто его реализует? В зависимости от интерфейса фактическая реализация может быть переключена по желанию.
Интерфейс - это определение набора методов, которые может реализовать класс. В основном он используется для полиморфизма интерфейсов.