113 ethereum hardhat : Использование TypeScript

— введение

— Включение поддержки TypeScript

— Конфигурация TypeScript

— Написание тестов и скриптов на TypeScript

— Поддержка сопоставлений путей

— Оптимизация производительности

— Запуск тестов и скриптов напрямую с помощью ts-node.

— hardhat Tutorials , hardhat 教程

— Контакт 联系方式

— введение

В этом руководстве мы рассмотрим шаги по созданию проекта Hardhat, работающего с TypeScript. Это означает, что вы можете писать конфигурацию, задачи, сценарии и тесты Hardhat на TypeScript.

Для общего обзора использования Hardhat обратитесь к руководству «Начало работы».

— Включение поддержки TypeScript

Hardhat автоматически включит поддержку TypeScript, если ваш файл конфигурации заканчивается на .ts и написан на допустимом TypeScript. Для корректной работы потребуется несколько изменений.

Установка зависимостей

Hardhat использует TypeScript и ts-node под капотом, поэтому вам необходимо установить их. Для этого откройте терминал, перейдите в проект Hardhat и запустите его:

npm install --save-dev ts-node typescript
Войти в полноэкранный режим Выйти из полноэкранного режима

Чтобы иметь возможность писать тесты на TypeScript, вам также понадобятся эти пакеты:

npm install --save-dev chai @types/node @types/mocha @types/chai
Войти в полноэкранный режим Выйти из полноэкранного режима

— Конфигурация TypeScript

Вы можете легко превратить конфигурационный файл JavaScript Hardhat в TypeScript. Давайте посмотрим, как это делается, начиная со свежего проекта Hardhat.

Откройте терминал, перейдите в пустую папку, запустите npx hardhat и пройдите шаги по созданию проекта JavaScript. Когда вы закончите, каталог вашего проекта должен выглядеть примерно так:

$ ls -l
total 1200
drwxr-xr-x    3 pato  wheel      96 Oct 20 12:50 contracts/
-rw-r--r--    1 pato  wheel     567 Oct 20 12:50 hardhat.config.js
drwxr-xr-x  434 pato  wheel   13888 Oct 20 12:52 node_modules/
-rw-r--r--    1 pato  wheel  604835 Oct 20 12:52 package-lock.json
-rw-r--r--    1 pato  wheel     460 Oct 20 12:52 package.json
drwxr-xr-x    3 pato  wheel      96 Oct 20 12:50 scripts/
drwxr-xr-x    3 pato  wheel      96 Oct 20 12:50 test/
Вход в полноэкранный режим Выход из полноэкранного режима

Затем выполните действия, описанные в разделе «Установка зависимостей».

Сейчас мы переименуем файл конфигурации с hardhat.config.js на hardhat.config.ts, просто запустите:

mv hardhat.config.js hardhat.config.ts
Войти в полноэкранный режим Выйти из полноэкранного режима

Нам нужно внести одно изменение в ваш конфиг, чтобы он работал с TypeScript: вы должны использовать import/export вместо require/module.exports.

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

Например, конфиг примера проекта выглядит следующим образом:

<<< @/…/packages/hardhat-core/sample-projects/javascript/hardhat.config.js{1,4}

в это:

<<< @/../packages/hardhat-core/sample-projects/typescript/hardhat.config.ts{1,2,4,8}.

Наконец, вам нужно создать файл tsconfig.json. Вот рекомендуемый нами:

<<< @/…/packages/hardhat-core/sample-projects/typescript/tsconfig.json

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

— Написание тестов и сценариев на TypeScript

При использовании JavaScript все свойства среды выполнения Hardhat внедряются в глобальную область видимости. При использовании TypeScript ничего не будет доступно в глобальной области видимости, и вам придется импортировать все явно, например, import { ethers } from "hardhat".

Полный пример написания тестов и скриптов на TypeScript приведен в руководстве «Начало работы и создание проекта TypeScript».

Если вы хотите, чтобы Hardhat генерировал типы для вашего смарт-контракта, вам следует установить и использовать @typechain/hardhat. Он генерирует файлы типов (*.d.ts) на основе ABI и практически не требует настройки.

— Поддержка сопоставлений путей

Typescript позволяет определять пользовательские сопоставления путей с помощью опции конфигурации paths:

{
  compilerOptions: {
    paths: { "~/*": ["src/*"] },
    // ...Other compilerOptions
  },
}
Войти в полноэкранный режим Выйти из полноэкранного режима

Чтобы поддерживать эту опцию при запуске тестов или скриптов Hardhat, необходимо установить пакет tsconfig-paths и зарегистрировать его в вашем hardhat.config.ts:

import { HardhatUserConfig } from "hardhat/config";

// This adds support for typescript paths mappings
import "tsconfig-paths/register";

const config: HardhatUserConfig = {
  // Your type-safe config goes here
};

export default config;
Вход в полноэкранный режим Выход из полноэкранного режима

— Оптимизация производительности

Под капотом Hardhat использует ts-node для поддержки TypeScript. По умолчанию он будет перекомпилировать и проверять типы при каждом запуске. В зависимости от размера вашего проекта, это может стать медленным.

Вы можете ускорить работу Hardhat, запретив ts-node проверять тип вашего проекта. Это делается путем установки переменной окружения TS_NODE_TRANSPILE_ONLY в значение 1.

Например, вы можете быстрее запускать тесты на TypeScript следующим образом TS_NODE_TRANSPILE_ONLY=1 npx hardhat test.

— Запуск тестов и скриптов напрямую с помощью ts-node.

При запуске скриптов Hardhat без CLI необходимо использовать флаг ts-node --files.

Его также можно включить с помощью TS_NODE_FILES=true.

— hardhat Tutorials , hardhat 教程

CN 中文 Github hardhat 教程 : github.com/565ee/hardhat_CN

CN 中文 CSDN hardhat 教程 : blog.csdn.net/wx468116118

EN 英文 Github hardhat Tutorials : github.com/565ee/hardhat_EN

— Контакт 联系方式

Домашняя страница : 565.ee

GitHub : github.com/565ee

Электронная почта : 565.eee@gmail.com

Facebook : facebook.com/565.ee

Twitter : twitter.com/565_eee

Telegram : t.me/ee_565

Оцените статью
devanswers.ru
Добавить комментарий