Пусть летят пули внешнего интерфейса — TypeScript

внешний интерфейс JavaScript TypeScript
"Любое приложение, которое можно написать на JavaScript, в конечном итоге будет написано на JavaScript."

-- Jeff Atwood 2007

"Интерфейс, текст также;
Задний конец, Ву Е;
Полный стек, как гражданский, так и военный;
Фронтальный полный укладчик, балующийся широким диапазоном,
Текст может быть интерактивным, Ву может быть одновременным,
Аппаратное программирование, еще более великолепное.
Я потомок входной двери, когда я был на втором курсе Тайсюэ, я поклонялся под звездной дверью,
Изучая фронтенд-техники, за последние несколько лет фронтенд-движения быстро изменились,
Сепаратистские военачальники, кадрные споры,
Три королевства, Angular, React, Vue, боюсь,
В начале 2009 года NodeJS приземлился на острове Мидуэй, осадив город,
Потрясающее 3D, WebVR, захватывает дух.
У древних есть облако, а тех, кто изучает фронт, достаточно, чтобы установить мир."

-- cuitianze 2016



В начале этой статьи я также привел цитаты гигантов индустрии программирования и новичков, чтобы «сильно» повысить статус фронтенда. Нет, не только фронтенда, наше настоящее имя должно быть JavaScript-разработчики. небольшая площадь пребывания в рабочем положении.


01

Закон Джеффа Этвуда


Так кто же такой Джефф Этвуд, предложивший «Закон Этвуда», потрясший Китай и зарубежные страны в 2007 году? Он является основателем StackOverflow в мире программирования.


Исходная ссылка на блог выглядит следующим образом: https://blog.codinghorror.com/the-principle-of-least-power/.


Происхождение закона Джеффа Этвуда: JavaScript может самостоятельно выполнять функциональную разработку, необходимую для всех интернет-приложений, и в то же время является самым легким среди основных языков программирования.


02


Сценарии приложений JavaScript


Хотя JavaScript не всемогущ, он может работать везде, где мы ожидаем, например:


  • В вашем браузере (почти все браузеры, считается, что неподдерживаемый браузер давно затерялся в исторической длинной реке);

  • Ваш телефон и планшет (например, React Native, Weex, Cordova);

  • Ваши настольные приложения (такие как Electron, NW.js могут охватывать три основные операционные системы: Mac, Windows и Linux);

  • На вашем сервере работает NodeJS и даже недавно выпущенный Deno, который трудно освоить.


Мало того, что все языки разработки апплета WeChat и апплета Alipay с наибольшим трафиком — это JavaScript, и JavaScript также занимает место среди аппаратных языков программирования.JavaScript также является неотъемлемой частью разработки блокчейн-приложений.



03


Недостатки JavaScript


Однако, хотя JavaScript настолько популярен, он занял почти половину интернет-приложений, но он подвергается критике с точки зрения дизайна языка. недостатки JavaScript.В противном случае он не использовал бы TypeScript в качестве основного языка в новом серверном фреймворке Deno.


В мире есть определенное количество Deno, возможно, не сможет заменить Node, особенно после того, как Node родился 10 лет назад, он долгое время был основным инструментом фронтенд-инжиниринга, и существует бесчисленное множество запущенных серверных приложений. по всему миру; все еще демо. Но TypeScript определенно получит поддержку.В данный момент, возможно, не лучшее время для изучения Deno, но это должно быть лучшее время для изучения TypeScript. Разработчики JavaScript обязательно откроют новую эру, открыв новую эру создания крупномасштабных приложений.


04


вытоптанная яма


Когда-то мы не знали, на сколько ям мы наступили в процессе разработки и отладки, и с азартом сталкивались с рефакторингом кода проекта бесчисленное количество раз, но были обескуражены, потому что вы не уверены, сколько фугасов зарыто в слабо типизированный код JavaScript, возможно, это ваши собственные руки.


Функции JavaScript могут принимать аргументы любого типа, что кажется гибким, но случайно приводит нас в ад поиска ошибок.


function func(anything) {
    return;
}


В строго типизированном языке, таком как Java, будет сообщено об ошибке, если параметр не имеет определенного типа.Хотя определение переменных немного громоздко, это действительно может в значительной степени избежать многих низкоуровневых, но скрытых ошибок.


05


Появление TypeScript


Ввиду вышеперечисленных проблем родился TypeScript.TypeScript — это надмножество JavaScript. Он соответствует последней спецификации ES6 и компенсирует недостатки JavaScript при разработке крупномасштабных приложений. TypeScript имеет очевидные преимущества в статической проверке типов, рефакторинге кода и языковых сервисах, которые являются недостатками JavaScript.


Кроме того, в процессе внешнего интерфейса часто тестируется некоторая черная магия преобразования типов JavaScript, например, тип +String может быть преобразован в числовой тип. Я лично считаю, что даже если код очень скудный, его не следует пропагандировать, потому что это приносит в жертву читабельность и ремонтопригодность кода, а рефакторинг требует длительного времени.


JavaScript, известный как язык со слабой типизацией, прямо и неявно преобразует такие типы, как строки, числа и даты, что делает невозможным просмотр типов объектов, поступающих в функции и исходящих из них, что приводит к акценту на написании комментариев к коду во время групповой разработки. комментирование кода становится крайне важным, иначе новым членам команды будет сложно сразу взяться за проект.


TypeScript может очень хорошо решить эту проблему, вам не нужно предоставлять отдельный документ, чтобы подробно объяснить код, TypeScript может четко записывать свойства каждого объекта, параметры методов и т. д.


06


Базовое введение в TypeScript


TypeScript поддерживает почти те же типы данных, что и JavaScript, а также предоставляет нам полезные перечисляемые типы.

  • Логическое значение

let isDone: boolean = false;

  • количество

let decLiteral: number = 6;

  • нить

let name: string = "bob";

  • множество

let list: number[] = [1, 2, 3];

  • Кортеж Кортеж

let x: [string, number];

  • перечислить

enum Color {Red, Green, Blue}

  • любое значение

let notSure: any = 4;

  • нулевой

function warnUser(): void {

alert("This is my warning message");

}

let unusable: void = undefined;

  • Нулевой и неопределенный

let u: undefined = undefined;

let n: null = null;

  • Never

function infiniteLoop(): never {

while (true) {

}

}

  • Object

declare function create(o: object | null): void;


Тип объединения, также известный как тип выбора, должен удовлетворять только одному из них.


let age: number | string;


Классы являются ядром TS.При разработке с помощью TS большая часть кода пишется в классах.


class Greeter {
    greeting: string;
    constructor(message: string) {
        this.greeting = message;
    }
    greet() {
        return "Hello, " + this.greeting;
    }
}


Идя дальше, классы имеют общедоступные, частные и защищенные модификаторы.


class Person {
    public name: string;
    private age: number;
    public constructor(theName: string) { this.name = theName; }
    protected move(distanceInMeters: number) {
        console.log(`${this.name} moved ${distanceInMeters}m.`);
    }
}


  • общедоступный доступ может получить любой

  • Частный частный только интерьер можно получить доступ к

  • защищенный защищенный доступен только для подклассов


Интерфейс Интерфейс, роль интерфейса состоит в том, чтобы назвать эти типы и определить контракт для вашего кода или стороннего кода.


interface SquareConfig {
    color?: string;
    width?: number;
}

function createSquare(config: SquareConfig): {color: string; area: number} {
    let newSquare = {color: "white", area: 100};
    if (config.color) {
        newSquare.color = config.color;
    }
    if (config.width) {
        newSquare.area = config.width * config.width;
    }
    return newSquare;
}

let mySquare = createSquare({color: "black"});


Где «?» обозначает необязательные параметры.


function test(a:string, b?:string, c:"ctz"){
    console.log(a);
    console.log(b);
    console.log(c);
}


Обобщения в таких языках, как C# и Java, могут использоваться для создания повторно используемых компонентов, компонент может поддерживать несколько типов данных. Это позволяет пользователю настроить тип данных для использования компонента.


function identity<T>(arg: T): T {
    return arg;
}

let myIdentity: <T>(arg: T) => T = identity;


class Calc<T> {
    a: T;
    b: T;
}


07


Будущее TypeScript


Короче говоря, для Javascript TypeScript — это как бы превосходная версия самого себя!

С развитием технологий JavaScript в конечном итоге будет следовать направлению TypeScript, и тогда мы сможем легче разрабатывать сверхбольшие приложения.

Я считаю, что в будущем любое приложение, которое можно реализовать на JavaScript, в конечном итоге будет написано на TypeScript.

"Любое приложение, которое можно написать на JavaScript, в конечном итоге будет написано наTypeScript. "


Эта статья — всего лишь руководство, а больше об использовании TypeScript нужно изучать и постепенно накапливать на практике.

Адрес официального документа TypeScript: http://www.typescriptlang.org/docs/home.html.


Автор этой статьи: cuitianze фронтенда темной лошадки