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

推薦する

MySQL 学習ノート: 完全な SELECT ステートメントの使用例と詳細な説明

この記事では、MySQL 学習ノートの select ステートメントの完全な使用方法を例を使用して説...

JavaScriptは、マウスが通過したときにドロップダウンボックスを表示するように実装します。

この記事では、マウスがドロップダウンボックスの上を通過するときにドロップダウンボックスを表示するため...

よく使われるCSSカプセル化方法の概要

1. pc-reset PCスタイルの初期化 /* 正規化.css */ html{ 行の高さ: 1...

Vueモバイル端末は画面上で指をスライドさせる方向を判定する

vueモバイル端末は、画面上で指をスライドさせる方向を判断します。具体的な内容は次のとおりです。これ...

Vue プロジェクトでの支払い機能の実装 (WeChat 支払いと Alipay 支払い)

目次プロジェクトにおける一般的な支払い方法Alipay決済微信ペイプロジェクトにおける一般的な支払い...

Linux プロセスが占有するポート番号を表示する 6 つの方法

Linux システム管理者にとって、サービスがポートに正しくバインドされているか、またはポートをリッ...

時点別のMySQLデータベース復旧実績

はじめに: 時間ポイントによる MySQL データベースの復旧どの企業にとっても、データは最も価値の...

js配列の基本的な使い方のまとめ

序文配列は特別な種類のオブジェクトです。 js には実際の配列はなく、オブジェクトを使用して配列をシ...

React でインデックスをキーとして使用することが推奨されないのはなぜですか?

1. 古い仮想DOMと新しい仮想DOMを比較し、まずキーが同じかどうかを確認します。 2. 引き続...

MySQL truncate table ステートメントの使用

Truncate table ステートメントは、テーブル内のすべてのデータを削除/切り捨てるために使...

テキストエリアの disabled 属性と readonly 属性の具体的な使用法

障害者の定義と使用法disabled 属性はブール属性です。 disabled 属性は、テキスト領域...

mysql データ型変換の実装

1. 問題下図のような表があり、結果値がreference_high値より大きいデータを見つける必要...

Windows Server 2008 64ビット MySQL5.6 インストール不要版 設定方法図

1 公式ウェブサイトから MySQL 5.6 バージョンの圧縮パッケージmysql-5.6.36-w...

ウェブページのエンコードにおける GB2312、GBK、UTF-8 の違い

まず、GB2312、GBK、UTF-8 はすべて文字エンコーディングであることを理解する必要がありま...

MyBatisインターセプターのページング機能を実装する方法

MyBatisインターセプターのページング機能を実装する方法序文:まず、実装原則についてお話しします...