精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

神器,快速將JavaScript遷移到TypeScript!

開發(fā) 開發(fā)工具
Ts-migrate 接受一個(gè) JavaScript 或部分 TypeScript 項(xiàng)目,并給出一個(gè)編譯 TypeScript 項(xiàng)目,下面就來看看這個(gè)工具是如何使用的!

如今,越來越多的項(xiàng)目將 JavaScript 代碼遷移到 TypeScript,TS 是一種靜態(tài)類型語言,能夠提高項(xiàng)目的可讀性、可維護(hù)性和健壯性。然而,大規(guī)模遷移是一項(xiàng)復(fù)雜的任務(wù),從 JavaScript 遷移到 TypeScript 有兩種選擇:

(1)混合遷移: 逐個(gè)文件遷移,修復(fù)類型錯(cuò)誤,然后重復(fù),直到遷移完整項(xiàng)目。allowJS 配置選項(xiàng)允許 TypeScript 和 JavaScript文件同時(shí)存于項(xiàng)目中,這使得這種方法成為可能!在混合遷移策略中,不必暫停開發(fā),可以逐個(gè)文件逐步遷移。雖然,在大規(guī)模項(xiàng)目上,這個(gè)過程可能需要很長時(shí)間。

(2) 整體遷移: 將 JavaScript 或部分 TypeScript 項(xiàng)目并將其完全轉(zhuǎn)換。需要添加一些 any類型和@ts-ignore注釋,以便項(xiàng)目編譯無誤,但隨著時(shí)間的推移,可以用更具描述性的類型替換它們。這種策略的優(yōu)勢如下:

  • 跨項(xiàng)目的一致性: 整體遷移將保證每個(gè)文件的狀態(tài)相同,無需記住可以在何處使用 TypeScript 功能以及編譯器將在何處防止基本錯(cuò)誤。
  • 只修復(fù)一種類型比修復(fù)文件容易得多: 修復(fù)整個(gè)文件可能非常復(fù)雜,因?yàn)槲募赡苡卸鄠€(gè)依賴項(xiàng)。使用混合遷移,很難跟蹤遷移的實(shí)際進(jìn)度和文件的狀態(tài)。

看起來整體遷移在這里更勝一籌。但是,對(duì)大型成熟代碼庫執(zhí)行全面遷移的過程是一個(gè)復(fù)雜的問題。為此,Airbnb 開源了一個(gè)工具幫助將代碼遷移到 TypeScript 的工具:ts-migrate:

圖片

ts-migrate 接受一個(gè) JavaScript 或部分 TypeScript 項(xiàng)目,并給出一個(gè)編譯 TypeScript 項(xiàng)目,下面就來看看這個(gè)工具是如何使用的!

概述

ts-migrate 分為 3 個(gè)包:

  • ts-migrate
  • ts-migrate-server
  • ts-migrate-plugins

這樣就能夠?qū)⑥D(zhuǎn)換邏輯與核心運(yùn)行器分開,并為不同的目的創(chuàng)建多個(gè)配置。目前有兩個(gè)主要配置:migration 和 reignore。雖然遷移配置的目標(biāo)是從 JavaScript 遷移到 TypeScript,但 reignore 的目的是通過簡單地忽略所有錯(cuò)誤使項(xiàng)目可編譯。當(dāng)代碼庫很大并且正在執(zhí)行以下任務(wù)時(shí),Reignore 很有用:

  • 升級(jí) TypeScript 版本
  • 對(duì)代碼庫進(jìn)行重大更改或重構(gòu)
  • 改進(jìn)一些常用庫的類型

這樣,即使有一些不想立即處理的錯(cuò)誤,也可以遷移項(xiàng)目。它使 TypeScript 或庫的更新變得更加容易。

這兩個(gè)配置都在 ts-migrate-server 上運(yùn)行,它由兩部分組成:

  • TSServer:與 VSCode 編輯器為編輯器和語言服務(wù)器之間的通信所做的非常相似。TypeScript 語言服務(wù)器的新實(shí)例作為單獨(dú)的進(jìn)程運(yùn)行,開發(fā)工具使用語言協(xié)議與服務(wù)器通信。
  • Migration runner:運(yùn)行并協(xié)調(diào)遷移過程。它需要以下參數(shù):
interface MigrateParams {
  rootDir: string;          // 根目錄的路徑  
  config: MigrateConfig;    // 遷移配置,包括插件列表
  server: TSServer;         // TSServer 分支的一個(gè)實(shí)例
}

它會(huì)執(zhí)行以下操作:

  1. 解析 tsconfig.json。
  2. 創(chuàng)建 .ts 文件。
  3. 將每個(gè)文件發(fā)送到 TypeScript 語言服務(wù)器進(jìn)行診斷。編譯器提供了三種類型的診斷:semanticDiagnostics、syntacticDiagnostics 和 suggestionDiagnostics。使用這些診斷來查找源代碼中有問題的地方。基于唯一的診斷代碼和行號(hào),可以識(shí)別問題的潛在類型并應(yīng)用必要的代碼修改。
  4. 在每個(gè)文件上運(yùn)行所有插件。如果文本因插件執(zhí)行而改變,更新原始文件的內(nèi)容并通知 TypeScript 語言服務(wù)器文件已更改。

通用插件

plugin 都會(huì)放在ts-migrate-plugins目錄下。先看兩個(gè)基于 jscodeshift 的插件:explicitAnyPlugin 和 declareMissingClassPropertiesPlugin。

explicitAnyPlugin 會(huì)對(duì)所有文件中的語義診斷錯(cuò)誤進(jìn)行處理。對(duì)于無法推導(dǎo)類型的變量添加any,可以幫助解決編譯問題。

// 轉(zhuǎn)化前:
const fn2 = function(p3, p4) {}
const var1 = [];

// 轉(zhuǎn)化后:
const fn2 = function(p3: any, p4: any) {}
const var1: any = [];

declareMissingClassPropertiesPlugin 會(huì)找到類申明中缺失的類型,并且添加any修飾。

基本使用

安裝和配置TS

在開始遷移之前,需要安裝和配置 TS:

  • 安裝 TS 包:
在開始遷移過程之前,我們必須安裝和配置 TS:
  • 初始化 TS 配置:
npx tsc --init
  • 安裝 React 類型(如果使用的是 React):
npm install --save-dev @types/react

注意:init 命令將創(chuàng)建一個(gè) tsconfig.json 文件。可以根據(jù)要求對(duì)其進(jìn)行修改。

將 JS 文件轉(zhuǎn)換為 TS

這里就實(shí)用上面說的 ts-migrate 工具將 JS 文件遷移到 TS:

  • 安裝 ts-migrate:
npm install --save-dev ts-migrate
  • 將 JS 文件重命名為 TS 文件,即將文件后綴從.js/.jsx轉(zhuǎn)換成.ts/.tsx:
npm run ts-migrate -- rename <project-dir> --sources <specific-dir>
  • 將JS文件轉(zhuǎn)換為TS格式:
npm run ts-migrate -- migrate <project-dir> --sources <specific-dir>/file.tsx

注意:最好先提交重命名更改,然后再提交轉(zhuǎn)換為 TS 更改。這樣 Git 將更改識(shí)別為 1 個(gè)文件而不是 2 個(gè)文件(刪除的文件 + 新文件)。

示例

下面來看一個(gè)例子,將項(xiàng)目的 src/examples/example.js 轉(zhuǎn)換為 TS,該文件內(nèi)容如下:

// wrong-type-assignment
let age = 17;

age = "seventeen";

// assign-to-const
const color = "blue";

color = "red";

// add-conversions
function sum(a, b) {
  return a + b;
}

// declare-missing-class-properties
class Point {
  distance(point) {
    const dx = this.x - point.x;
    const dy = this.y - point.y;

    return Math.hypot(dx, dy);
  }
}

可以通過以下命令來重命名 JavaScript 文件:

npm run ts-migrate -- rename ./ --sources ./src/examples

這里 --sources ./src/examples 指定了 tsconfig.json 中 sources 的路徑為 ./src/examples。該命令在項(xiàng)目根目錄下運(yùn)行,通過相對(duì)路徑指定需要處理的文件或文件夾。執(zhí)行完該命令后,src/examples/example.js 就變成了 src/examples/example.ts。

接下來就需要將遷移腳本應(yīng)用于 example.ts 文件:

npm run ts-migrate -- migrate ./ --sources ./src/examples/example.ts

執(zhí)行完該命令之后,就可以看到一些 ts-migrate 功能:

圖片

圖片

圖片

圖片

注意:

  • ts-migrate 無法自動(dòng)修復(fù) TS 問題,它會(huì)留下帶有錯(cuò)誤詳細(xì)信息的 @ts-expect-error 注釋。
  • 雖然 ts-migrate 在需要的地方將類型放入變量,但仍然需要將 any 類型更改為特定類型

在運(yùn)行 ts-migrate 命令時(shí)可以添加以下命令:

  • init <folder>: 在 <folder> 文件夾中初始化一個(gè) tsconfig.json 文件。
  • rename <folder>: 將 <folder> 文件夾中的 JavaScript/JSX 文件重命名為 TypeScript/TSX 文件。
  • migrate <folder>: 使用 codemods 修復(fù) <folder> 文件夾中的 TypeScript 錯(cuò)誤。
  • reignore <folder>: 在項(xiàng)目上重新運(yùn)行 ts-ignore。

這些命令可以傳遞 --sources(或 -s)標(biāo)志。該標(biāo)志接受一個(gè)字符串路徑(支持 glob 模式),表示項(xiàng)目的子集。當(dāng)使用此標(biāo)志時(shí),ts-migrate 忽略默認(rèn)源文件而使用您列出的文件代替。這實(shí)際上相當(dāng)于將 tsconfig.json 的 include 屬性替換為提供的 sources。此標(biāo)志可以多次傳遞。

可用的選項(xiàng)包括:

  • -h, --help: 顯示幫助信息。
  • -i, --init: 在 <folder> 文件夾中創(chuàng)建 tsconfig.json 文件。
  • -m, --migrate: 使用 codemods 修復(fù) TypeScript 錯(cuò)誤。
  • -rn, --rename: 將 <folder> 文件夾中的 JavaScript/JSX 文件重命名為 TypeScript/TSX 文件。
  • -ri, --reignore: 在項(xiàng)目上重新運(yùn)行 ts-ignore。

下面是一些示例:

  • npm run ts-migrate -- --help: 顯示幫助信息。
  • npm run ts-migrate -- init frontend/foo: 在 frontend/foo 文件夾中創(chuàng)建 tsconfig.json 文件。
  • npm run ts-migrate -- rename frontend/foo: 將 frontend/foo 文件夾中的 JavaScript/JSX 文件重命名為 TypeScript/TSX 文件。

TS Migrate 被設(shè)計(jì)為一組插件,因此它可以針對(duì)不同的用例進(jìn)行很好的自定義。可以添加更多插件來解決諸如類型質(zhì)量改進(jìn)或與庫相關(guān)的事件等問題。用戶可以根據(jù)自己的需要添加具有不同插件集的自定義配置。這個(gè)工具并不能保證實(shí)現(xiàn)完全沒有錯(cuò)誤的轉(zhuǎn)換,但在實(shí)際使用過程中,對(duì)于一個(gè)超過 50000 行代碼、1000 個(gè)文件的項(xiàng)目,從 JavaScript 轉(zhuǎn)換到 TypeScript 使用這個(gè)工具基本只需 1 天。

ts-migrate:https://github.com/airbnb/ts-migrate。

責(zé)任編輯:姜華 來源: 前端充電寶
相關(guān)推薦

2011-03-30 14:31:25

Mssql數(shù)據(jù)庫

2023-05-10 10:54:37

項(xiàng)目ts代碼

2021-02-02 14:39:03

微服務(wù)架構(gòu)數(shù)據(jù)

2023-07-07 08:02:48

TypeScript編譯器文檔

2019-01-07 08:10:54

微服務(wù)單體 Web

2018-07-04 14:17:10

微服務(wù)代碼開發(fā)

2018-01-08 08:50:05

Linux內(nèi)核系統(tǒng)程序

2018-07-10 14:46:04

LinuxShellsudo

2018-12-19 09:20:45

Linux遷移安裝軟件

2010-09-29 11:06:21

活動(dòng)目錄OpenLDAP

2024-03-01 11:10:55

2016-10-26 16:44:44

WatchfinderAWS云計(jì)算

2019-05-07 11:24:07

ReactJavascriptTypescript

2013-06-21 13:49:08

MariaDB

2012-05-21 10:23:36

2017-07-26 16:09:54

系統(tǒng)遷移趨勢

2010-07-20 09:48:33

2021-10-08 11:07:54

云計(jì)算數(shù)據(jù)中心IT

2023-10-19 16:39:38

2018-02-02 16:15:02

Hadoop數(shù)據(jù)遷移集群
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

日本成年人网址| 欧美综合国产精品久久丁香| 色噜噜狠狠一区二区三区狼国成人| av资源种子在线观看| 日韩电影在线一区二区| 在线看日韩欧美| 中文 日韩 欧美| 3344国产永久在线观看视频| www国产成人免费观看视频 深夜成人网| 久久综合免费视频| 中文字幕 亚洲一区| 91久久久久久白丝白浆欲热蜜臀| 国产精品久久久久一区二区三区共 | 欧美黑人国产人伦爽爽爽| 日韩成人av影院| 国产又粗又猛大又黄又爽| 成人午夜在线观看视频| 国产一区亚洲一区| 性欧美激情精品| 日韩av片在线| 久本草在线中文字幕亚洲| 在线观看视频一区二区| 国产免费裸体视频| 邻居大乳一区二区三区| 国产一区二区三区四区在线观看| 欧美影院久久久| 久久久精品视频免费观看| 最新国产精品视频| 日韩精品中文字幕一区二区三区| 50路60路老熟妇啪啪| 国产淫片在线观看| 久久免费看少妇高潮| 亚洲bt欧美bt日本bt| 亚洲 国产 日韩 欧美| 极品尤物久久久av免费看| 国产亚洲精品成人av久久ww| 中文字幕人妻一区| 日韩黄色碟片| 91精品福利视频| 日本一二三区视频在线| 韩国中文免费在线视频| 久久久国产午夜精品| 国产综合欧美在线看| 黄色三级网站在线观看| 国产999精品久久| 99久热re在线精品视频| 国产浮力第一页| 国产精品综合二区| 91在线观看免费高清| 一级片视频播放| 久久99精品久久久久久| 在线看国产一区| 国产欧美日韩免费| 国产精品成人久久久| 日韩精品亚洲一区| 国产福利精品在线| 久久久久久av无码免费看大片| 久久一区亚洲| 国产成人亚洲精品| 波多野结衣电车痴汉| 日韩国产欧美在线播放| 国产精品高清网站| 中文字幕91爱爱| 久久99久国产精品黄毛片色诱| 成人动漫网站在线观看| a毛片在线免费观看| 国产成人免费xxxxxxxx| 国产麻豆一区二区三区在线观看| 亚洲免费国产视频| caoporn国产精品| 欧美激情国产日韩| av中文字幕一区二区三区| 中文字幕一区三区| 日b视频免费观看| 超碰aⅴ人人做人人爽欧美| 色综合视频在线观看| 特级丰满少妇一级| 激情综合五月| 亚洲韩国日本中文字幕| 欧美偷拍一区二区三区| 91综合久久| 欧美福利小视频| 一级成人黄色片| 久久99精品久久久久久动态图 | 四季av一区二区| 在线免费观看亚洲| 亚洲精品一线二线三线| 午夜理伦三级做爰电影| 欧美丰满老妇| 97精品免费视频| 日本一区二区三区久久| 风间由美性色一区二区三区 | 国产精品a级| 日韩免费在线视频| aaa级黄色片| 久久美女高清视频| 精品嫩模一区二区三区| 日本不卡一二三| 日韩欧美一区二区免费| www.av欧美| 国内视频精品| 国产日韩精品入口| 亚洲人成色777777精品音频| 中文字幕一区二区三区在线观看| 欧美久久久久久久久久久久久| 电影亚洲一区| 亚洲激情视频在线播放| 欧美a级片免费看| 午夜在线精品| 国产女人水真多18毛片18精品| 在线观看国产原创自拍视频| 精品久久久视频| 欧美国产在线一区| 成久久久网站| 欧美一级大片在线观看| 草逼视频免费看| 国产精品每日更新| 免费男同深夜夜行网站| 福利片在线一区二区| 久久天天躁狠狠躁夜夜爽蜜月| 69视频免费看| 99精品久久只有精品| 国产一区二区三区在线免费| 国产精品第一国产精品| 亚洲一区二区福利| 午夜影院免费在线观看| 波波电影院一区二区三区| 51xx午夜影福利| 国产精品2区| 久久精品一本久久99精品| 超碰在线观看91| 久久久亚洲综合| 黄色一级在线视频| 国产精品极品在线观看| 欧美xxxx做受欧美.88| 亚洲一区二区影视| 国产精品色一区二区三区| 国产a级片免费观看| 久久精品国产亚洲5555| 性色av一区二区三区免费| 亚洲精品国产av| 亚洲制服欧美中文字幕中文字幕| 日韩精品在线播放视频| 欧美在线精品一区| 99在线首页视频| 超碰在线中文字幕| 亚洲国产精品免费| 在线看成人av| 91老师片黄在线观看| 青青草视频在线免费播放| 欧美a一欧美| 清纯唯美日韩制服另类| 国产在线播放av| 欧美日韩一区二区欧美激情| a级黄色免费视频| 精品中文字幕一区二区| 欧美h视频在线观看| 国产一区二区三区免费观看在线 | 久久精品美女视频| 成人av资源在线| 国产成人在线免费看| 综合干狼人综合首页| 国产va免费精品高清在线观看| 成人高潮成人免费观看| 欧美日韩国产色站一区二区三区| 在线免费看av网站| 成人91在线观看| 黄色片一级视频| 色婷婷色综合| 大波视频国产精品久久| 理论不卡电影大全神| 国产一区二区美女视频| 国产免费久久久| 亚洲成a天堂v人片| 日本精品在线观看视频| 韩日精品视频一区| 欧美又粗又长又爽做受| 欧美精品色图| 成人在线看片| 怡红院成人在线| 欧美情侣性视频| 免费一级在线观看| 欧美军同video69gay| 黄色小视频在线免费看| 久久久精品tv| 黄页网站在线看| 日日欢夜夜爽一区| 9191国产视频| 国产精品一区高清| 91久久久一线二线三线品牌| 在线观看特色大片免费视频| 精品国产一区久久久| 人妻无码中文字幕| 欧美日韩高清影院| 亚洲日本视频在线观看| 亚洲人成影院在线观看| 精品人妻互换一区二区三区| 国产自产2019最新不卡| 黄色a级片免费| 午夜欧美精品久久久久久久| 日韩av影视| 红杏aⅴ成人免费视频| 国产日韩中文字幕| 日韩不卡免费高清视频| 四虎精品在线观看| 亚洲视频日韩精品| 亚洲精品字幕在线| 欧美色图天堂网| 国产毛片aaa| 亚瑟国产精品| 日韩一区二区三区电影在线观看| 国产精品午夜影院| 亚洲免费观看高清完整版在线观看 | 精品一区二区三区中文字幕视频| 日本欧美中文字幕| а√天堂中文在线资源8| 久久久精品国产网站| 国产免费av高清在线| 亚洲黄色成人网| 精品人妻一区二区三区四区不卡 | 国产va免费精品高清在线| 欧美性爽视频| 欧美精品在线观看| 国产精品一卡二卡三卡| 中文字幕精品国产| 欧美日韩免费做爰大片| 亚洲激情在线观看视频免费| 亚洲AV无码一区二区三区性| 欧美高清性hdvideosex| 亚洲一区二区影视| 欧美日韩视频在线一区二区| 草莓视频18免费观看| 日韩欧美在线视频日韩欧美在线视频| 国产无遮挡又黄又爽又色| 一区二区免费看| 九九视频免费在线观看| 日韩毛片高清在线播放| 99久久99久久精品免费| 欧美激情一区二区在线| 国产成人免费观看网站| 中文一区一区三区高中清不卡| 色噜噜噜噜噜噜| 国产精品蜜臀在线观看| sm捆绑调教视频| 中文字幕一区二区三区视频| 日本裸体美女视频| 成人免费在线播放视频| 午夜精品福利在线视频| 亚洲激情五月婷婷| 久久久国产精华液| 亚洲国产精品久久久男人的天堂 | 欧美激情视频二区| 久久久精品综合| 成人无码av片在线观看| 欧美激情自拍偷拍| ass极品国模人体欣赏| 中文字幕亚洲欧美在线不卡| 欧美性生给视频| 亚洲综合无码一区二区| 国产精选第一页| 色综合视频在线观看| 一区二区视频免费| 欧美一区二区三区免费在线看 | 亚洲视频视频在线| 在线免费观看黄| 米奇精品一区二区三区在线观看| 久久99亚洲网美利坚合众国| 7m精品福利视频导航| 桃花岛tv亚洲品质| 91精品国产综合久久香蕉最新版| 国产在线视频欧美一区| 国产无套精品一区二区| 精品视频亚洲| av动漫在线免费观看| 亚洲欧美视频| 三级性生活视频| av影院午夜一区| 精品日韩在线视频| 亚洲综合av网| 亚洲第一区av| 日韩精品一区二区三区老鸭窝| 亚洲欧美丝袜中文综合| 在线成人中文字幕| 黄网av在线| 国产精品高清在线观看| 99re91这里只有精品| 欧美一区视久久| 综合久久久久| www.亚洲天堂网| 国产自产2019最新不卡| 亚洲精品视频大全| 亚洲美女免费视频| 国产又大又黄又粗| 日韩一区二区免费高清| 国产在线观看黄| 久久久久久久国产| 黄色日韩网站| 免费成人av网站| 欧美成熟视频| 在线免费视频一区| 91在线一区二区三区| 最新一区二区三区| 色88888久久久久久影院野外 | 在线看欧美视频| 大波视频国产精品久久| 欧美r级电影| 成人免费观看毛片| 不卡一区二区中文字幕| 国产精品白丝喷水在线观看| 91国模大尺度私拍在线视频| 国产成人手机在线| 久久精品国产亚洲精品2020| 亚洲成人短视频| 看欧美日韩国产| 亚洲国产免费看| 国产男女无遮挡猛进猛出| 国产精品欧美综合在线| 日韩电影在线观看一区二区| 日韩av网址在线| 久久av色综合| 成人免费看片网站| 综合久久一区| 日日夜夜精品视频免费观看| 国产精品国产三级国产aⅴ原创| 欧美成人一区二区三区四区| 日韩av在线网| av影院在线| 国产精品国模大尺度私拍| 一区二区影院| 天堂中文av在线| 国产精品久久二区二区| 在线视频欧美亚洲| 在线日韩欧美视频| 97精品国产综合久久久动漫日韩 | 精品婷婷色一区二区三区蜜桃| 欧美黄污视频| 中文字幕乱码在线人视频| 亚洲视频 欧洲视频| 国产精品老熟女视频一区二区| 中国china体内裑精亚洲片| 97成人超碰| 一区二区视频国产| 久久成人综合网| 国产男女猛烈无遮挡在线喷水| 欧美日韩一级黄| 天堂资源在线中文| 成人欧美一区二区三区黑人孕妇| 亚洲xxx拳头交| 国产又黄又嫩又滑又白| 一卡二卡欧美日韩| 全国男人的天堂网| 亚洲91精品在线| 免费久久久久久久久| 国产a级片免费观看| 国产精品区一区二区三| 国产三级伦理片| 欧美国产高跟鞋裸体秀xxxhd| 国内毛片久久| 国产免费一区二区三区视频| 国产人久久人人人人爽| 亚洲无码精品在线播放| 欧美裸体xxxx极品少妇| 精品精品国产毛片在线看| 黑人糟蹋人妻hd中文字幕| 国产视频一区在线播放| 国产精品久久久久久久久久久久久久久久久久 | 欧美 日韩 国产 一区| 女同性αv亚洲女同志| 午夜精品久久久久久久久久| 久草在现在线| 91在线观看免费| 国产精品亚洲综合久久| 女教师淫辱の教室蜜臀av软件| 日韩一区二区三区电影 | 一本到不卡免费一区二区| 在线播放麻豆| 国产伦精品一区二区三毛| 日韩一区精品视频| 538任你躁在线精品视频网站| 日韩黄色高清视频| 国产一区二区三区四区五区3d| 无颜之月在线看| 久久久精品黄色| 精品国产无码AV| 国产成人欧美在线观看| 欧美日韩ab| 亚洲色图欧美色| 亚洲精品一线二线三线无人区| 黄色日韩网站| 欧美激情 国产精品| 国产精品久久久久久久第一福利| 色哟哟国产精品色哟哟| 成人做爰www免费看视频网站| 亚洲精品乱码| 777777国产7777777| 亚洲美女视频网站| 亚洲精选av| 福利片一区二区三区| 欧美日韩精品在线观看| xvideos国产在线视频|