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 の起動を設定する方法

推薦する

画像を読み込むための JavaScript キャンバス

この記事では、画像を読み込むためのJavaScriptキャンバスの具体的なコードを参考までに紹介しま...

MySQLデーモンの起動に失敗したエラーの解決方法

MySQLデーモンの起動に失敗したエラーの解決方法数日前、公開されたウェブサイトはこれらのアクティビ...

React Native が「NSArray<id<RCTBridgeModule>>型のパラメータを初期化できません」というエラーを報告する (解決方法)

最近、古い RN プロジェクトを Xcode で実行すると、次のコード エラーが報告されました。 &...

Docker 経由で CentOS コンテナを作成する手順

目次序文コンテナ間の通信を容易にするためのブリッジネットワークを作成するCentOS7イメージを使用...

mysql5.7 のエンコーディングを utf8mb4 に設定する方法

最近、問題に遭遇しました。モバイル端末の絵文字や一部の絵文字は 4 バイトですが、UTF-8 は 3...

初心者でもjsのtypeofとinstanceofの違いを理解できます

目次1. 型2. インスタンス3. 違い1. 型typeof 演算子は、評価されていないオペランドの...

JavaScript にはすでに Object があるのに、なぜ Map が必要なのでしょうか?

目次1. オブジェクトをマップとして扱わない1. 未定義のプロパティはプロトタイプチェーンを通じてア...

単純なCSSの詳細に惚れ込むと、重要ではないものの、効率性が向上する可能性がある

CSS の将来は非常に楽しみです。一方では、まったく新しいページ レイアウト方法であり、他方では、ク...

Docker Compose で環境変数を参照する方法の例

プロジェクトでは、さまざまな条件や使用シナリオを制御するために、docker-compose.yml...

訪問者を惹きつけるウェブサイトコンテンツを作成する14の方法

ネットサーフィンをしていると、私の注意を引こうとする美しいグラフィックでいっぱいの Web サイトを...

Docker で Zookeeper をインストールする (スタンドアロンおよびクラスター)

Docker を起動したら、利用できるオプションを見てみましょう。 公式のものがある場合は、もちろ...

Windows 10 で MySQL を完全にアンインストールして再インストールするための詳細な手順

さまざまな理由で、誰もが MySQL を再インストールする必要があると思います。 MySQL と Q...

MySQL マルチバージョン同時実行制御 MVCC の詳細な研究

MVCC MVCC (Multi-Version Concurrency Control) は、マル...

CSS継承方法

次の背景画像を持つ div があるとします。 次の反射効果を作成します。 方法はたくさんありますが、...

Sublime / vscode による HTML コード生成の迅速な実装

目次基本的なHTML構造div とクラス名のショートカット キーを生成するクラス名を持つdiv ID...