タイプスクリプト:PNPMプロジェクトの競合における数学パッケージのモジュール解析と宣言ファイル
この記事では、特にmath
パッケージのタイプ宣言を拡張する場合、PNPMを使用してタイプスクリプトプロジェクトのmath
パッケージのモジュール解析と宣言ファイルのマージの問題を解決する方法について説明します。
問題シナリオ
PNPMで作成されたプロジェクトでは、 math
パッケージを正常に導入し、正常に使用しました。ただし、 math
Packageのdivide
Function Type宣言を拡張してmath-extensions.d.ts
ファイルを作成しようとすると、モジュールの上書きの問題が発生し、VSコードエラーが発生します。
質問と回答
質問1: declare module
べきではありませんか? VSコードがエラーを報告するのはなぜですか?
declare module
実際に宣言をマージすることを目的としていますが、問題は、型のコンパイラによる宣言ファイルのロードの順序と優先度です。 math-extensions.d.ts
の読み込み優先度がmath
パッケージによって提供された宣言ファイルよりも高い場合、上書きが発生し、エラーが発生します。
質問2:非相対的なインポートを使用するときにmath-extensions.d.ts
有効になるのはなぜですか?
非関連するインポートはnode_modules
を優先的に検索しますが、TypeScriptコンパイラはbaseUrl
に基づいてプロジェクトの宣言ファイルも調べ、 tsconfig.json
に構成include
。 math-extensions.d.ts
include
によって指定されたディレクトリにある場合、 baseUrl
プロジェクトルートディレクトリである場合、ロードされます。
解決
このソリューションは、主に宣言ファイルの競合を回避し、負荷順序を制御することに焦点を当てています。
宣言ファイルの場所の名前を変更または調整する:
math-extensions.d.ts
ファイルの名前を変更するか、math
Package Declarationファイルと競合しないディレクトリに移動します。たとえば、カスタムタイプの宣言を格納するためのtypes
ディレクトリを作成します。-
tsconfig.json
のpaths
の構成:paths
構成を介して、math
モジュールの解析パスを明示的に指定し、node_modules
の宣言ファイルをロードするための優先度が与えられます。例えば:{ 「コンパイラポーション」:{ 「oututdir」:「dist」、 「baseurl」: "。"、 「moduleResolution」:「ノード」、 「パス」:{ 「数学」:["node_modules/math"]] } }、 "include":["src/**/*"] }
この構成により、タイプスクリプトコンパイラは、
math
モジュールを解析するときにnode_modules
ディレクトリから宣言ファイルをロードすることを好み、math-extensions.d.ts
による上書きを回避します。
上記の方法により、プロジェクトのスムーズな編集と操作を確保するために、タイプスクリプトモジュールの解析と宣言ファイルの合併の問題を効果的に解決できます。明確なプロジェクト構造と合理的なtsconfig.json
構成は、そのような問題を回避するための鍵であることを忘れないでください。
以上がTypeScriptで開発するとき、PNPMが作成したプロジェクトで数学パッケージのモジュール解析と宣言ファイルの合併の問題を解決する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

JavaScript 不提供任何内存管理操作。相反,内存由 JavaScript VM 通过内存回收过程管理,该过程称为垃圾收集。

问题:Vue3+TypeScript+Vite的项目中如何使用require动态引入类似于图片等静态资源!描述:今天在开发项目时(项目框架为Vue3+TypeScript+Vite)需要动态引入静态资源,也就是img标签的src属性值为动态获取,按照以往的做法直接是require引入即可,如下代码:写上后代码波浪线报错,报错提示:找不到名称“require”。是否需要为节点安装类型定义?请尝试使用npmi--save-dev@types/node。ts(2580)在进行了npmi--save-d

如何声明字段名为枚举的类型?根据设计,type字段应该是一个枚举值,不应该由调用方随意设置。下面是Type的枚举声明,共有6个字段。enumType{primary="primary",success="success",warning="warning",warn="warn",//warningaliasdanger="danger",info="info",}TypeSc

如何使用Redis和TypeScript开发高性能计算功能概述:Redis是一个开源的内存数据结构存储系统,具有高性能和可扩展性的特点。TypeScript是JavaScript的超集,提供了类型系统和更好的开发工具支持。结合Redis和TypeScript,我们可以开发出高效的计算功能来处理大数据集,并充分利用Redis的内存存储和计算能力。本文将介绍如何

标题:使用Redis和TypeScript开发可扩展的前端应用程序引言:在当今互联网时代,可扩展性是任何应用程序的关键要素之一。前端应用程序也不例外。为了满足用户日益增长的需求,我们需要使用高效可靠的技术来构建可扩展的前端应用程序。在本文中,我们将介绍如何使用Redis和TypeScript来开发可扩展的前端应用程序,并通过代码示例演示其应用。Redis简介

如何使用MySQL在TypeScript中实现数据类型转换功能引言:在开发Web应用程序时,数据类型转换是一个非常常见的需求。在处理数据库中存储的数据时,特别是使用MySQL作为后端数据库时,我们经常需要将查询结果中的数据按照我们所需的类型进行转换。本文将介绍如何在TypeScript中利用MySQL实现数据类型转换的功能,并提供代码示例。一、准备工作:在开

随着JavaScript的不断发展,前端工程师们已经逐渐意识到JavaScript本身存在的一些问题,例如缺乏类型检查和模块化,这些问题在大型项目中经常会造成混乱和错误。为了解决这些问题,TypeScript应运而生,成为前端开发中越来越受欢迎的语言。而在后端开发领域中,PHP一直是一种极其流行的脚本语言。因此,结合TypeScript来开发PHP的应用程序

如何声明字段名为枚举的类型?根据设计,type字段应该是一个枚举值,不应该由调用方随意设置。下面是Type的枚举声明,共有6个字段。enumType{primary="primary",success="success",warning="warning",warn="warn",//warningaliasdanger="danger",info="info",}TypeSc


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

ホットトピック



