Рубрики
Без рубрики

Как обернуть голову вокруг Teamescript

Надеша Кабрал Как обернуть голову вокруг Tymdercript PreeicsPhoto Hannah Wei на Unsplashsometime, когда дискуссия «Flow vssyscript» была бушевлена, я должен был выбрать сторону. И я выбрал Typescript. К счастью, это было одно из лучших решений, которые я сделал. Когда я должен был сделать

Автор оригинала: FreeCodeCamp Community Member.

Надеша Кабрал

Когда-то обратно, когда дискуссия «Flow vscyscript» была бушевлена, я должен был выбрать сторону. И я выбрал Typescript. К счастью, это было одно из лучших решений, которые я сделал. Когда я должен был сделать это решение, в конечном итоге то, что убедило меня, было Поддержка типографии для генеральных вызовов Отказ

Сегодня позвольте мне попытаться прогуляться по тому, какие универсальные генерики выполняют, и как он помогает нам написать более безопасный, уборщик и более ремонтерский код.

Пример № 1: Утверждать простой тип

Допустим, нам нужна функция, которая принимает какое-либо значение и помещает это в объект. Наивной реализации этого в Teadercript будет выглядеть и пробежен как:

Так много для безопасности типа.

Это правда, что MyValue может быть любого типа. Но то, что нам нужно сказать, что контроллер – это то, что вывод функции, хотя оно не может быть предусмотрено в качестве разработчика, написания кода, может быть «выведено» типом входного типа. Другими словами, мы можем иметь «общее определение» о том, что является выходом.

Общая реализация вышеуказанной функции будет что-то вроде этого:

Что мы просто говорим, что MyValue может иметь тип T Отказ Это может быть «любой тип», но не любой тип. Другими словами, у него есть тип, который мы заботимся о.

Если вы попытаетесь написать более раннее выполнение в TypeScript, вы не сможете запустить его, так как компилятор дает полезное предупреждение:

Пример № 2: Написание IDX с универсальными

IDX Является «библиотекой для доступа произвольно вложенных, возможно, ненужные свойства на объекте JavaScript». Это особенно полезно, когда вы работаете со сложными объектами JavaScript, такие как ответы API для отдыха, которые могут иметь ненужные поля.

Если вы не возражаете, мне немного упростить это, он выполняет это в основном попробуйте функция, заданная в качестве второго параметра с реквизит . Если это не удается, это поймать и возвращает undefined Создание безопасно, без броска.

Опять же, наивная реализация этого будет:

Но, если мы немного умны с универсальными, мы можем получить Teamplect, чтобы помочь нам с этим.

Мы представили два общих здесь.

T Для типа ввода, и мы «подсказуем», что это объект, говоря Т продлен {} Отказ U для вывода типа. И с этим мы можем выразить, что селектор Функция – это то, что нужно T и возвращает U неопределенного.

Теперь, если вы попытаетесь написать тот же код, что и раньше с этим определением IDX , вы получите ошибку компиляции:

Пример № 3: Используя вывод типа и дженерики, чтобы получить тип возврата функции

Предположим, что у меня есть функция, и мне нужно предоставить потребителю с типом вывода. Если я назову этот тип Fooutput Я напишу что-то вроде:

Но, используя универсальные и тип вывода, я могу написать Returntype Генеральный тип, который может «вывести» возвратный тип функции:

Мы играем с T расширяется (... args: любой []) = > Любая здесь. Это просто означает, что А t t – это универсальный тип функции, который требует любого количества Любые аргументы и создают ценность. Тогда мы используем это в Фер еще один ты P E R и верните его.

Используя это, я избегаю необходимости написать мой тип возврата в приведенном выше примере вручную. С Foo это функция, и мне нужна эта функция, чтобы использовать Returntype. Я должен получить тип Foo Используя Тип Отказ

Полезные утилиты в моем панели инструментов?

Я использую кучу этих утилит в повседневном программировании. Большая часть утилиты определяется в типографии lib.es5.ds над здесь Отказ Некоторые из моих самых используемых включают в себя:

Надеюсь, это поможет вам понять Teampcript Generics немного больше. Если у вас есть вопросы, не стесняйтесь оставлять вопрос ниже.

Оригинал: “https://www.freecodecamp.org/news/how-to-wrap-your-head-around-typescript-generics-8d243f7de78/”