Typescriptを使用してWeChatミニプログラムでプロジェクトを作成する方法

Typescriptを使用してWeChatミニプログラムでプロジェクトを作成する方法

プロジェクトを作成する

WeChat開発者ツールでプロジェクトを作成し、言語でTypeScriptを選択します。

改修プロジェクト

package.jsonファイルを編集し、 miniprogram-api-typingstypescriptバージョンを変更します。

{
 "名前": "ミニプログラム-TS-クイックスタート",
 "バージョン": "1.0.0",
 "説明": ""、
 「スクリプト」: {
 "コンパイル": "./node_modules/typescript/bin/tsc",
 "tsc": "ノード ./node_modules/typescript/lib/tsc.js"
 },
 「キーワード」: [],
 "著者": ""、
 "ライセンス": "",
 「依存関係」: {
 },
 「devDependencies」: {
 "typescript": "^4.1.3",
 "ミニプログラム API タイピング": "^2.12.1-beta.0"
 }
}

tsconfig.jsonファイルを編集し、libを["esnext"]に変更し、最新の構文をサポートし、typeRoots構成項目を削除します。

{
 "コンパイラオプション": {
 "strictNullChecks": 真、
 "noImplicitAny": true、
 "モジュール": "CommonJS",
 "ターゲット": "ES5",
 "allowJs": 偽、
 "実験的デコレータ": true,
 "noImplicitThis": true、
 "noImplicitReturns": true、
 "alwaysStrict": 真、
 "inlineSourceMap": true、
 "inlineSources": true、
 "noFallthroughCasesInSwitch": true、
 "noUnusedLocals": true、
 "未使用パラメータなし": true,
 "厳密": 真、
 「コメントを削除」: true、
 「きれい」:本当、
 "strictPropertyInitialization": true、
 "lib": ["esnext"]
 },
 "含む": [
 「./**/*.ts」
 ]、
 「除外」: [
 「ノードモジュール」
 ]
}

npm install実行する

プロジェクトの下にあるtypingsディレクトリを削除し、node_modulesの下にあるminiprogram-api-typingsのtypesファイルをプロジェクトのルートディレクトリにコピーします。

ミニプログラムの下にインターフェイス ディレクトリを作成し、IAppOption.ts ファイルを作成し、最後に app.ts ファイルを編集します。

// IAppOption.ts
デフォルトインターフェースIAppOptionをエクスポートします。
 グローバルデータ: {
  テキスト: 文字列;
 }
}
// アプリ.ts
「./interface/IAppOption」からIAppOptionをインポートします。

アプリ<IAppOption>({
 グローバルデータ: {
  テキスト: 「こんにちは、Word!」
 },
 起動() {
 }
})

詳細 -> ローカル設定 -> デバッグベースライブラリで、最新の

Promise WeChatミニプログラムAPIの使用

以前は、 miniprogram-api-promiseパッケージを使用してAPI Promise対応にしたり、独自のAPIを記述したりできました。

これで、 lib.wx.api.d.tsPromisifySuccessResult返す wx.getStorageInfo など、直接使用できるようになりました。

PromisifySuccessResult Promiseを返します

getStorageInfo<TOption は GetStorageInfoOption を拡張します>(
オプション?: TOption
): PromisifySuccessResult<TOption, GetStorageInfoOption>

PromisifySuccessResult<と入力します
P、
 TはAsyncMethodOptionLikeを拡張します
> = P は { 成功: 任意 } を拡張します
 ? 空所
 : P は { 失敗: 任意 } を拡張します
 ? 空所
 : P は { 完全: 任意 } を拡張します
 ? 空所
 : Promise<Parameters<Exclude<T['success'], undefined>>[0]>

2つの用途、ほとんどのAPIがサポート

 wx.getStorageInfo({
 成功: () => {
  console.log('実行に成功しました')
 },
 失敗: () => {
  console.log('実行に失敗しました')
 },
 完了: () => {
  console.log('インターフェース呼び出しが終了しました')
 }
})
wx.getStorageInfo().then(() => {
 console.log('実行に成功しました')
}).catch(() => {
 console.log('実行に失敗しました')
}).finally(() => {
 console.log('インターフェース呼び出しが終了しました')
})

ソースコード: https://github.com/NikolasSky/ts-miniprogram/tree/master/ts-miniprogram-base

これで、Typescript を使用して WeChat アプレット プロジェクトを作成する方法についての記事は終了です。Typescript を使用して WeChat アプレットを開発する方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後も 123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • フロントエンドにおけるTypescriptの一般的な概念の深い理解
  • JavaScript のプライベート クラス フィールドと TypeScript のプライベート修飾子の詳細な説明
  • JS デコレータ パターンと TypeScript デコレータ
  • TypeScript における型保護の詳細な説明
  • React プロジェクトにおける TypeScript の使用の概要
  • Vue3+TypeScriptはaxiosをカプセル化し、リクエスト呼び出しを実装します
  • TypeScriptのインストールと使用方法と基本的なデータ型
  • TypescriptでThisを使用する方法の詳細な説明
  • TypeScript ジェネリックパラメータのデフォルト型と新しい厳密なコンパイルオプション

<<:  MySQLがOracleのnvlと同様の機能を持つことができるかどうかについての簡単な議論

>>:  Ubuntu 16.04 で PostgreSQL の起動を設定する方法

推薦する

CentOS7 で yum ソースをインストールし、コマンド rz と sz をアップロードおよびダウンロードする方法 (画像付き)

** CentOS7 で yum ソースをインストールし、rz および sz コマンドをアップロー...

Linux を使用して時間指定ファイルが占有するディスク容量を計算する方法

スケジュールされたタスク エディターを開きます。Cent は、デフォルトで vim を使用して直接開...

Vueコンポーネントは、写真やビデオをアップロードするためのサンプルコードをカプセル化します

まず依存関係をダウンロードします: cnpm i -S vue-uuid ali-oss画像フィール...

Vue3 がデータ監視を実装するためにプロキシを使用する理由の分析

Vue データの双方向バインディング原則ですが、この方法には欠点があり、配列とオブジェクトの部分的な...

Nginx + consul + upsync を使用して動的負荷分散を実現する方法の詳細な説明

目次前提条件DNSドメイン名解決プロセス外部ネットワークマッピングnginxコア知識nginxとはア...

JS を使用してデータ型を決定する 4 つの方法

目次序文1. 型2. インスタンス3. コンストラクター詳細: 4. 文字列要約する序文Javasc...

Web ページのスクロール バーが右側に設定されているのはなぜですか?

私たちが毎日使っているブラウザや Word 文書のスクロール バーはなぜ右側にあるのでしょうか。多く...

mysql 5.7.11 winx64 初期パスワード変更

公式サイトからMySQL-5.7.11-winx64の圧縮版をダウンロード。インストール後、パスワー...

グリーンスタイルのウェブデザイン作品18点の最新コレクション

トイ・ストーリー3 オンラインマーケティングウェブサイトゼンモバイル鉄から鉄へスプラウトファンドバー...

CSS セレクタの 4 つのカテゴリ: 基本、組み合わせ、属性、疑似クラス

セレクターとは何ですか?セレクターの役割は、セレクターを介して要素を見つけ、CSS スタイルを要素に...

MySQL ストレステストツール Mysqlslap の使用

1. MySQL独自のストレステストツールMysqlslap mysqlslap は、mysql に...

MySQL での一時テーブルの使用例

ここ2日間ちょっと忙しくて、公式アカウントも数日更新が止まってしまいました。その結果、何人かの読者か...

HTMLの基礎: HTMLの基本構造

HTML ハイパーテキスト ドキュメントの基本構造は、ドキュメント ヘッダーとドキュメント本体の 2...

Zookeeperスタンドアロン環境とクラスタ環境の構築

1. 単一マシン環境の構築# 1.1 ダウンロードZookeeper の対応するバージョンをダウンロ...

MySQL 5.7.17 zip インストールおよび設定チュートリアル MySQL 起動失敗の解決策

MySQL 5.7.17、現在最新バージョンのようです、ダウンロードアドレスここで、プラットフォーム...