検索
ホームページウェブフロントエンドjsチュートリアルvue で ts を使用する方法 (詳細なチュートリアル)
vue で ts を使用する方法 (詳細なチュートリアル)Jun 02, 2018 pm 05:29 PM
使用チュートリアル詳しい

この記事では、vue での ts の使い方のサンプルコードを中心に紹介しますので、参考にしてください。

この記事では、vue で ts を使用する方法のサンプル コードを紹介し、皆さんに共有します。詳細は次のとおりです。

注: この記事は、すべての vue を ts に置き換えるわけではありませんが、元のプロジェクトに ts を埋め込むことができます。ドキュメントは現在、ts 変換プロセスへの移行という実用段階にあります。

何に使われますか?

型チェック、ネイティブjsへの直接コンパイル、新しい糖衣構文の導入

なぜtsを使うのですか?

TypeScript は、JavaScript の「問題点」を解決するように設計される必要があります。弱い型と名前空間がないため、モジュール化が難しく、大規模なプログラムの開発には適していません。さらに、誰もがオブジェクト指向プログラミングをより便利に実践できるようにするための糖衣構文も提供します。

Typescript は、私たちのコーディング習慣を制限するだけでなく、関数を見たときに、その関数の使用法、どのような値を渡す必要があるか、そして戻り値がどのような型であるかをすぐに知ることができます。一目でわかる、大規模向け プロジェクトの保守性が大幅に向上しました。開発者が自分の足を撃つようなことはありません。

Angular: TypeScript を選んだ理由は何ですか?

  1. TypeScript の優れたツール

  2. TypeScript は JavaScript のスーパーセットです

  3. TypeScript により抽象化が明確になります

  4. TypeScript によりコードが読みやすく理解しやすくなります

はい、これが直観的ではないと思われることは承知しています。私の言いたいことを例を挙げて説明しましょう。この関数 jQuery.ajax() を見てみましょう。その署名からどのような情報が得られるのでしょうか?

確かにわかっていることは、この関数には 2 つのパラメーターがあるということだけです。これらのタイプは推測できます。おそらく最初は文字列で、2 番目は構成オブジェクトです。しかし、これは単なる推測であり、間違っている可能性があります。設定オブジェクトにどのようなオプションが含まれるか (その名前とタイプ)、関数が何を返すかはわかりません。

ソースコードまたはドキュメントを確認せずにこの関数を呼び出すことは不可能です。ソース コードを調べるという選択肢はありません。関数やクラスの目的は、実装方法を知らなくてもそれらを使用することです。言い換えれば、実装ではなくインターフェイスに依存する必要があります。ドキュメントを確認することもできますが、これは最高の開発エクスペリエンスではありません。余分な時間がかかり、ドキュメントが古くなっていることがよくあります。

つまり、jQuery.ajax(url,settings) を読むのは簡単ですが、この関数の呼び出し方法を実際に理解するには、その実装またはそのドキュメントを読む必要があります。

ここにタイプのバージョンがあります:

より詳しい情報が得られます。

  1. この関数の最初のパラメータは文字列です。

  2. パラメータの設定はオプションです。関数に渡すことができるすべてのオプションを、名前だけでなく型も確認できます。

  3. 関数は JQueryXHR オブジェクトを返し、そのプロパティと関数を確認できます。

型付き署名は型なし署名よりも明らかに長くなりますが、:string、:JQueryAjaxSettings、および JQueryXHR は乱雑ではありません。 これらは、コードの理解を向上させる重要なドキュメントです。実装を詳しく調べたり、ドキュメントを読んだりしなくても、コードをより深く理解できます。 私の個人的な経験では、型によってコードを理解するためのより多くのコンテキストが提供されるため、型付きコードをより速く読むことができます。

Angular からの抜粋: なぜ TypeScript を選ぶのですか?

習得は簡単ですか?

TypeScript の設計上のハイライトの 1 つは、JavaScript の構文を放棄して新しい構文を開始するのではなく、JavaScript のスーパーセットにすることです (このクレジットは Anders にクレジットされるべきです)。これは、JavaScript を比較的深く理解していれば、TypeScript の設計が JavaScript の使用習慣と慣例に基づいているため、学習コストが非常に低いことを意味します。
一目で理解しやすいいくつかの簡単な例:

基本型

let isDone: boolean = false; // 布尔值
let decLiteral: number = 6;  // 数字
let name: string = "bob"; // 字符串
let list: number[] = [1, 2, 3]; // 数组
...
...

Interface

function printLabel(labelledObj: { label: string }) {  console.log(labelledObj.label);
 } let myObj = { size: 10, label: "Size 10 Object" };
 printLabel(myObj);

型チェッカーは printLabel への呼び出しを調べます。 printLabel にはパラメータが 1 つあり、このオブジェクト パラメータには文字列型の label という名前の属性が必要です。 渡すオブジェクト パラメーターには実際には多くのプロパティが含まれますが、コンパイラーはそれらの必要なプロパティが存在するかどうか、およびそれらの型が一致するかどうかのみをチェックすることに注意してください。

もちろん、高度な使用法もいくつかありますが、ここではあまり詳しく説明しません。詳しくはこちらをご覧ください

vue プロジェクトに ts を適用するにはどうすればよいですか?

1. まず、ts

npm install --save-dev typescript npm install --save-dev ts-loader

をインストールします。2. ルートディレクトリにtsconfig.jsonファイルを作成します

{
  "compilerOptions": {
   "experimentalDecorators": true,
   "emitDecoratorMetadata": true,
   "lib": ["dom","es2016"],
   "target": "es5"
  },
  "include": ["./src/**/*"] }

3. 設定にts-loaderを追加します

{
  test: /\.tsx?$/,
  loader: 'ts-loader',  exclude: /node_modules/,   options: {
   appendTsSuffixTo: [/\.vue$/],
  }
 }

4. 最後に、.tsサフ​​ィックスを追加します。 webpack.base.conf.js ファイルの下

现在就可以在我们原本的项目中使用ts文件了。

如何实践?

1、如何在js中引用ts文件?

由于js文件没有类型检测,当我们把ts文件引入的时候,ts文件会转化成js文件,所以在js文件中引用ts文件的方法类型检测机制不会生效。也就是说只有在ts文件内才会有类型检测机制。

那么怎么在js文件中使用类型检测机制呢?小编自己封装了一套typeCheck的decorator方法,仅供参考!用法如下:

@typeCheck('object','number') deleteItem(item,index) {}

检测deleteItem方法参数: item为object类型,index为number类型,如果类型不匹配将会抛出异常

部分代码献上:

const _check = function (checked,checker) {
    check:      for(let i = 0; i < checked.length; i++) {       if(/(any)/ig.test(checker[i]))          continue check;       if(_isPlainObject(checked[i]) && /(object)/ig.test(checker[i]))      continue check;       if(_isRegExp(checked[i]) && /(regexp)/ig.test(checker[i]))      continue check;       if(Array.isArray(checked[i]) && /(array)/ig.test(checker[i]))      continue check;       let type = typeof checked[i];       let checkReg = new RegExp(type,&#39;ig&#39;)       if(!checkReg.test(checker[i])) {          console.error(checked[i] + &#39;is not a &#39; + checker[i]);          return false;
   }
  }  return true;
 } /**
  * @description 检测类型
  *  1.用于校检函数参数的类型,如果类型错误,会打印错误并不再执行该函数;
  *  2.类型检测忽略大小写,如string和String都可以识别为字符串类型;
  *  3.增加any类型,表示任何类型均可检测通过;
  *  4.可检测多个类型,如 "number array",两者均可检测通过。正则检测忽略连接符 ;
  */
 export function typeCheck() {     const checker = Array.prototype.slice.apply(arguments);       return function (target, funcName, descriptor) {          let oriFunc = descriptor.value;
       descriptor.value = function () {           let checked = Array.prototype.slice.apply(arguments);             let result = undefined;             if(_check(checked,checker) ){
           result = oriFunc.call(this,...arguments);
    }       return result;
   }
  }
 };

ts的类型检测配合typeCheck基本上已经满足了我们的需要。

2、如何在ts中引用js文件?

由于js文件中没有类型检测,所以ts文件引入js文件时会转化为any类型,当然我们也可以在 .d.ts文件中声明类型。

如 global.d.ts 文件

当然有的时候我们需要使用一些库,然而并没有声明文件,那么我们在ts文件中引用的时候就会是undefined。这个时候我们应该怎么做?

比如我想要在util.ts文件中用 ‘query-string'的时候我们就会这样引用:

import querystring from &#39;query-string&#39;;

然而当你打印querystring 的时候是undefined。如何解决呢?小编的方法也仅供参考

新建module.js文件

import querystring from &#39;query-string&#39;; export const qs = querystring;

utile.ts 文件

import { qs } from &#39;./module.js&#39;;

解决了。打印qs不再是undefined,可以正常使用qs库了哦。

至此本文就将ts在vue中的配置介绍结束,此文只代表个人看法,考虑到项目的扩展性,所以没有全部替换成ts,只是尝试性在vue中引入ts,还有很多需要改进的地方,如果有更好的建议和意见可以联系我!

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

JS实现将链接生成二维码并转为图片的方法

基于vue1和vue2获取dom元素的方法

nodejs+mongodb aggregate级联查询操作示例

以上がvue で ts を使用する方法 (詳細なチュートリアル)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
3分钟快速使用ChatGPT教程,用它帮我写简历,太牛了3分钟快速使用ChatGPT教程,用它帮我写简历,太牛了Apr 11, 2023 pm 07:40 PM

已经火了很久了,身边的同事也用它来进行一些调研,资源检索,工作汇报等方面都有很大的的效率提升。很多人问ChatGPT会不会取代程序员?我的回答是:不会!ChatGPT并不是我们的敌人,相反的是,它是我们的好帮手。未来人和人的竞争,可能就会从原先的我懂得更多,我实操经验更丰富,变成了我比你更会用工具,我比你更懂得提问,我比你更会发挥机器人的最大特性,所以,为了不掉队,你还不准备体验下ChatGPT吗?快速体验面试官经常会问你的项目有啥重难点?很多人不会回答,直接看看ChatGPT怎么说,真的太牛了

教大家win10电脑怎么屏蔽各种弹窗广告教大家win10电脑怎么屏蔽各种弹窗广告Jul 09, 2023 pm 05:57 PM

电脑上广告弹窗太多了怎么办,有的小伙伴不想重装系统,下面就和大家讲讲关闭win10广告的方法吧,大家可以借鉴一下。1、右键点击电脑桌面下方任务栏,在弹出的菜单中选择并打开“任务管理器”。2、右键点击需要关闭的启动项,选择“禁用”。对应软件的开机启动项就关闭成功了。弹窗拦截设置1、打开毒霸,在首页点击左下方的“弹窗拦截”。2、点击“扫描”,对电脑进行全面扫描找出带有弹窗的软件。3、勾选需要拦截的软件,然后点击“一键拦截”。4、一键拦截后,对应的软件弹窗问题就已被拦截了。综上所述,如果大家电脑win

2023年最流行的5个php开发框架视频教程推荐2023年最流行的5个php开发框架视频教程推荐May 08, 2017 pm 04:26 PM

如果想快速进行php web开发,选择一个好用的php开发框架至关重要,一个好的php开发框架可以让开发工作变得更加快捷、安全和有效。那2023年最流行的php开发框架有哪些呢?这些php开发框架排名如何?

u盘怎么重装win11系统的步骤教程u盘怎么重装win11系统的步骤教程Jul 08, 2023 pm 09:33 PM

微软近日透露了将推出win11系统,很多用户都在期待新系统呢。网上已经有泄露关于win11的镜像安装系统。大家不知道如何安装的话,可以使用U盘来进行安装。小编现在就给大家带来了win11的U盘安装教程。1、首先准备一个8G以上大小的u盘,将它制作成系统盘。2、接着下载win11系统镜像文件,将它放入u盘中,大家可以直接点击右侧的链接进行下载。3、下载完成后装载该iso文件。4、装载完成之后会进入新的文件夹,在其中找到并运行win11的安装程序。5、在列表中选择“win11”然后点击“下一步”。6

PHP基础教程:从入门到精通PHP基础教程:从入门到精通Jun 18, 2023 am 09:43 AM

PHP是一种广泛使用的开源服务器端脚本语言,它可以处理Web开发中所有的任务。PHP在网页开发中的应用广泛,尤其是在动态数据处理上表现优异,因此被众多开发者喜爱和使用。在本篇文章中,我们将一步步地讲解PHP基础知识,帮助初学者从入门到精通。一、基本语法PHP是一种解释性语言,其代码类似于HTML、CSS和JavaScript。每个PHP语句都以分号;结束,注

老电脑系统xp升级win7教程步骤老电脑系统xp升级win7教程步骤Jul 07, 2023 pm 10:21 PM

xp系统曾经是使用最多的系统,不过随着硬件的不断升级,xp系统已经不能发挥硬件的性能,所以很多朋友就想升级win7系统,下面就和大家分享一下老电脑升级win7系统的方法吧。1、在小白一键重装系统官网中下载小白三步装机版软件并打开,软件会自动帮助我们匹配合适的系统,然后点击立即重装。2、接下来软件就会帮助我们直接下载系统镜像,只需要耐心等候即可。3、下载完成后软件会帮助我们直接进行在线重装Windows系统,请根据提示操作。4、安装完成后会提示我们重启,选择立即重启。5、重启后在PE菜单中选择Xi

什么是OCO订单?什么是OCO订单?Apr 25, 2023 am 11:26 AM

二选一订单(OneCancelstheOther,简称OCO)可让您同时下达两个订单。它结合了限价单和限价止损单,但只能执行其中一个。换句话说,只要其中的限价单被部分或全部成交、止盈止损单被触发,另一个订单将自动取消。请注意,取消其中一个订单也会同时取消另一个订单。在币安交易平台进行交易时,您可以将二选一订单作为交易自动化的基本形式。这个功能可让您选择同时下达两个限价单,从而有助于止盈和最大程度减少潜在损失。如何使用二选一订单?登录您的币安帐户之后,请前往基本交易界面,找到下图所示的交易区域。点

教你学会win10如何删除temp文件夹教你学会win10如何删除temp文件夹Jul 08, 2023 pm 04:13 PM

在win10的系统盘中,很多网友会看到一个temp文件夹,里面占用的内存非常大,占用了c盘很多空间。有网友想删除temp文件夹,但是不知道能不能删,win10如何删除temp文件夹。下面小编就教下大家win10删除temp文件夹的方法。首先,Temp是指系统临时文件夹。而很多收藏夹,浏览网页的临时文件都放在这里,这是根据你操作的过程临时保存下来的。如有需要,可以手动删除的。如何删除temp文件夹?具体步骤如下:方法一:1、按下【Win+R】组合键打开运行,在运行框中输入temp,点击确定;2、此

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

SecLists

SecLists

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

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター