欧美videos另类精品-欧美videos另类极品-欧美vide-欧美va在线视频-欧美va在线观看-欧美va在线播放免费观看

細數 TS 中那些奇怪的符號

2020-9-4    seo達人

TypeScript 是一種由微軟開發的自由和開源的編程語言。它是 JavaScript 的一個超集,而且本質上向這個語言添加了可選的靜態類型和基于類的面向對象編程。


本文阿寶哥將分享這些年在學習 TypeScript 過程中,遇到的 10 大 “奇怪” 的符號。其中有一些符號,阿寶哥第一次見的時候也覺得 “一臉懵逼”,希望本文對學習 TypeScript 的小伙伴能有一些幫助。


好的,下面我們來開始介紹第一個符號 —— ! 非空斷言操作符。


一、! 非空斷言操作符

在上下文中當類型檢查器無法斷定類型時,一個新的后綴表達式操作符 ! 可以用于斷言操作對象是非 null 和非 undefined 類型。具體而言,x! 將從 x 值域中排除 null 和 undefined 。


那么非空斷言操作符到底有什么用呢?下面我們先來看一下非空斷言操作符的一些使用場景。


1.1 忽略 undefined 和 null 類型

function myFunc(maybeString: string | undefined | null) { // Type 'string | null | undefined' is not assignable to type 'string'. // Type 'undefined' is not assignable to type 'string'.  const onlyString: string = maybeString; // Error const ignoreUndefinedAndNull: string = maybeString!; // Ok }

1.2 調用函數時忽略 undefined 類型

type NumGenerator = () => number; function myFunc(numGenerator: NumGenerator | undefined) { // Object is possibly 'undefined'.(2532) // Cannot invoke an object which is possibly 'undefined'.(2722) const num1 = numGenerator(); // Error const num2 = numGenerator!(); //OK }

因為 ! 非空斷言操作符會從編譯生成的 JavaScript 代碼中移除,所以在實際使用的過程中,要特別注意。比如下面這個例子:


const a: number | undefined = undefined; const b: number = a!; console.log(b);

以上 TS 代碼會編譯生成以下 ES5 代碼:


"use strict"; const a = undefined; const b = a; console.log(b);

雖然在 TS 代碼中,我們使用了非空斷言,使得 const b: number = a!; 語句可以通過 TypeScript 類型檢查器的檢查。但在生成的 ES5 代碼中,! 非空斷言操作符被移除了,所以在瀏覽器中執行以上代碼,在控制臺會輸出 undefined。


二、?. 運算符

TypeScript 3.7 實現了呼聲最高的 ECMAScript 功能之一:可選鏈(Optional Chaining)。有了可選鏈后,我們編寫代碼時如果遇到 null 或 undefined 就可以立即停止某些表達式的運行。可選鏈的核心是新的 ?. 運算符,它支持以下語法:


obj?.prop

obj?.[expr]

arr?.[index] func?.(args)

這里我們來舉一個可選的屬性訪問的例子:


const val = a?.b;

為了更好的理解可選鏈,我們來看一下該 const val = a?.b 語句編譯生成的 ES5 代碼:


var val = a === null || a === void 0 ? void 0 : a.b;

上述的代碼會自動檢查對象 a 是否為 null 或 undefined,如果是的話就立即返回 undefined,這樣就可以立即停止某些表達式的運行。你可能已經想到可以使用 ?. 來替代很多使用 && 執行空檢查的代碼:


if(a && a.b) { } if(a?.b){ } /**

* if(a?.b){ } 編譯后的ES5代碼

*

* if(

*  a === null || a === void 0

*  ? void 0 : a.b) {

* }

*/

但需要注意的是,?. 與 && 運算符行為略有不同,&& 專門用于檢測 falsy 值,比如空字符串、0、NaN、null 和 false 等。而 ?. 只會驗證對象是否為 null 或 undefined,對于 0 或空字符串來說,并不會出現 “短路”。


2.1 可選元素訪問

可選鏈除了支持可選屬性的訪問之外,它還支持可選元素的訪問,它的行為類似于可選屬性的訪問,只是可選元素的訪問允許我們訪問非標識符的屬性,比如任意字符串、數字索引和 Symbol:


function tryGetArrayElement<T>(arr?: T[], index: number = 0) { return arr?.[index];

}

以上代碼經過編譯后會生成以下 ES5 代碼:


"use strict"; function tryGetArrayElement(arr, index) { if (index === void 0) { index = 0; } return arr === null || arr === void 0 ? void 0 : arr[index];

}

通過觀察生成的 ES5 代碼,很明顯在 tryGetArrayElement 方法中會自動檢測輸入參數 arr 的值是否為 null 或 undefined,從而保證了我們代碼的健壯性。


2.2 可選鏈與函數調用

當嘗試調用一個可能不存在的方法時也可以使用可選鏈。在實際開發過程中,這是很有用的。系統中某個方法不可用,有可能是由于版本不一致或者用戶設備兼容性問題導致的。函數調用時如果被調用的方法不存在,使用可選鏈可以使表達式自動返回 undefined 而不是拋出一個異常。


可選調用使用起來也很簡單,比如:


let result = obj.customMethod?.();

該 TypeScript 代碼編譯生成的 ES5 代碼如下:


var result = (_a = obj.customMethod) === null || _a === void 0 ? void 0 : _a.call(obj);

另外在使用可選調用的時候,我們要注意以下兩個注意事項:


如果存在一個屬性名且該屬性名對應的值不是函數類型,使用 ?. 仍然會產生一個 TypeError 異常。

可選鏈的運算行為被局限在屬性的訪問、調用以及元素的訪問 —— 它不會沿伸到后續的表達式中,也就是說可選調用不會阻止 a?.b / someMethod() 表達式中的除法運算或 someMethod 的方法調用。

三、?? 空值合并運算符

在 TypeScript 3.7 版本中除了引入了前面介紹的可選鏈 ?. 之外,也引入了一個新的邏輯運算符 —— 空值合并運算符 ??。當左側操作數為 null 或 undefined 時,其返回右側的操作數,否則返回左側的操作數。


與邏輯或 || 運算符不同,邏輯或會在左操作數為 falsy 值時返回右側操作數。也就是說,如果你使用 || 來為某些變量設置默認的值時,你可能會遇到意料之外的行為。比如為 falsy 值(''、NaN 或 0)時。


這里來看一個具體的例子:


const foo = null ?? 'default string'; console.log(foo); // 輸出:"default string" const baz = 0 ?? 42; console.log(baz); // 輸出:0

以上 TS 代碼經過編譯后,會生成以下 ES5 代碼:


"use strict"; var _a, _b; var foo = (_a = null) !== null && _a !== void 0 ? _a : 'default string';

console.log(foo); // 輸出:"default string" var baz = (_b = 0) !== null && _b !== void 0 ? _b : 42;

console.log(baz); // 輸出:0

通過觀察以上代碼,我們更加直觀的了解到,空值合并運算符是如何解決前面 || 運算符存在的潛在問題。下面我們來介紹空值合并運算符的特性和使用時的一些注意事項。


3.1 短路

當空值合并運算符的左表達式不為 null 或 undefined 時,不會對右表達式進行求值。


function A() { console.log('A was called'); return undefined;} function B() { console.log('B was called'); return false;} function C() { console.log('C was called'); return "foo";} console.log(A() ?? C()); console.log(B() ?? C());

上述代碼運行后,控制臺會輸出以下結果:


A was called

C was called

foo

B was called

false

3.2 不能與 && 或 || 操作符共用

若空值合并運算符 ?? 直接與 AND(&&)和 OR(||)操作符組合使用 ?? 是不行的。這種情況下會拋出 SyntaxError。


// '||' and '??' operations cannot be mixed without parentheses.(5076) null || undefined ?? "foo"; // raises a SyntaxError // '&&' and '??' operations cannot be mixed without parentheses.(5076) true && undefined ?? "foo"; // raises a SyntaxError

但當使用括號來顯式表明優先級時是可行的,比如:


(null || undefined ) ?? "foo"; // 返回 "foo"

3.3 與可選鏈操作符 ?. 的關系

空值合并運算符針對 undefined 與 null 這兩個值,可選鏈式操作符 ?. 也是如此。可選鏈式操作符,對于訪問屬性可能為 undefined 與 null 的對象時非常有用。


interface Customer {

 name: string;

 city?: string;

} let customer: Customer = {

 name: "Semlinker" }; let customerCity = customer?.city ?? "Unknown city"; console.log(customerCity); // 輸出:Unknown city

前面我們已經介紹了空值合并運算符的應用場景和使用時的一些注意事項,該運算符不僅可以在 TypeScript 3.7 以上版本中使用。當然你也可以在 JavaScript 的環境中使用它,但你需要借助 Babel,在 Babel 7.8.0 版本也開始支持空值合并運算符。


四、?: 可選屬性

在面向對象語言中,接口是一個很重要的概念,它是對行為的抽象,而具體如何行動需要由類去實現。 TypeScript 中的接口是一個非常靈活的概念,除了可用于對類的一部分行為進行抽象以外,也常用于對「對象的形狀(Shape)」進行描述。


在 TypeScript 中使用 interface 關鍵字就可以聲明一個接口:


interface Person {

 name: string;

 age: number;

} let semlinker: Person = {

 name: "semlinker",

 age: 33,

};

在以上代碼中,我們聲明了 Person 接口,它包含了兩個必填的屬性 name 和 age。在初始化 Person 類型變量時,如果缺少某個屬性,TypeScript 編譯器就會提示相應的錯誤信息,比如:


// Property 'age' is missing in type '{ name: string; }' but required in type 'Person'.(2741) let lolo: Person  = { // Error name: "lolo" }

為了解決上述的問題,我們可以把某個屬性聲明為可選的:


interface Person {

 name: string;

 age?: number;

} let lolo: Person  = {

 name: "lolo" }

4.1 工具類型

4.1.1 Partial<T>

在實際項目開發過程中,為了提高代碼復用率,我們可以利用 TypeScript 內置的工具類型 Partial<T> 來快速把某個接口類型中定義的屬性變成可選的:


interface PullDownRefreshConfig {

 threshold: number;

 stop: number;

} /**

* type PullDownRefreshOptions = {

*   threshold?: number | undefined;

*   stop?: number | undefined;

* }

*/ type PullDownRefreshOptions = Partial<PullDownRefreshConfig>

是不是覺得 Partial<T> 很方便,下面讓我們來看一下它是如何實現的:


/**

* Make all properties in T optional

*/ type Partial<T> = {

 [P in keyof T]?: T[P];

};

4.1.2 Required<T>

既然可以快速地把某個接口中定義的屬性全部聲明為可選,那能不能把所有的可選的屬性變成必選的呢?答案是可以的,針對這個需求,我們可以使用 Required<T> 工具類型,具體的使用方式如下:


interface PullDownRefreshConfig {

 threshold: number;

 stop: number;

} type PullDownRefreshOptions = Partial<PullDownRefreshConfig> /**

* type PullDownRefresh = {

*   threshold: number;

*   stop: number;

* }

*/ type PullDownRefresh = Required<Partial<PullDownRefreshConfig>>

同樣,我們來看一下 Required<T> 工具類型是如何實現的:


/**

* Make all properties in T required

*/ type Required<T> = {

 [P in keyof T]-?: T[P];

};

原來在 Required<T> 工具類型內部,通過 -? 移除了可選屬性中的 ?,使得屬性從可選變為必選的。


五、& 運算符

在 TypeScript 中交叉類型是將多個類型合并為一個類型。通過 & 運算符可以將現有的多種類型疊加到一起成為一種類型,它包含了所需的所有類型的特性。


type PartialPointX = { x: number; }; type Point = PartialPointX & { y: number; }; let point: Point = {

 x: 1,

 y: 1 }

在上面代碼中我們先定義了 PartialPointX 類型,接著使用 & 運算符創建一個新的 Point 類型,表示一個含有 x 和 y 坐標的點,然后定義了一個 Point 類型的變量并初始化。


5.1 同名基礎類型屬性的合并

那么現在問題來了,假設在合并多個類型的過程中,剛好出現某些類型存在相同的成員,但對應的類型又不一致,比如:


interface X {

 c: string;

 d: string;

} interface Y {

 c: number;

 e: string } type XY = X & Y; type YX = Y & X; let p: XY; let q: YX;

在上面的代碼中,接口 X 和接口 Y 都含有一個相同的成員 c,但它們的類型不一致。對于這種情況,此時 XY 類型或 YX 類型中成員 c 的類型是不是可以是 string 或 number 類型呢?比如下面的例子:


p = { c: 6, d: "d", e: "e" };



q = { c: "c", d: "d", e: "e" };



為什么接口 X 和接口 Y 混入后,成員 c 的類型會變成 never 呢?這是因為混入后成員 c 的類型為 string & number,即成員 c 的類型既可以是 string 類型又可以是 number 類型。很明顯這種類型是不存在的,所以混入后成員 c 的類型為 never。


5.2 同名非基礎類型屬性的合并

在上面示例中,剛好接口 X 和接口 Y 中內部成員 c 的類型都是基本數據類型,那么如果是非基本數據類型的話,又會是什么情形。我們來看個具體的例子:


interface D { d: boolean; } interface E { e: string; } interface F { f: number; } interface A { x: D; } interface B { x: E; } interface C { x: F; } type ABC = A & B & C; let abc: ABC = {

 x: {

   d: true,

   e: 'semlinker',

   f: 666 }

}; console.log('abc:', abc);

以上代碼成功運行后,控制臺會輸出以下結果:




由上圖可知,在混入多個類型時,若存在相同的成員,且成員類型為非基本數據類型,那么是可以成功合并。


六、| 分隔符

在 TypeScript 中聯合類型(Union Types)表示取值可以為多種類型中的一種,聯合類型使用 | 分隔每個類型。聯合類型通常與 null 或 undefined 一起使用:


const sayHello = (name: string | undefined) => { /* ... */ };

以上示例中 name 的類型是 string | undefined 意味著可以將 string 或 undefined 的值傳遞給 sayHello 函數。


sayHello("semlinker");

sayHello(undefined);

此外,對于聯合類型來說,你可能會遇到以下的用法:


let num: 1 | 2 = 1; type EventNames = 'click' | 'scroll' | 'mousemove';

示例中的 1、2 或 'click' 被稱為字面量類型,用來約束取值只能是某幾個值中的一個。


6.1 類型保護

當使用聯合類型時,我們必須盡量把當前值的類型收窄為當前值的實際類型,而類型保護就是實現類型收窄的一種手段。


類型保護是可執行運行時檢查的一種表達式,用于確保該類型在一定的范圍內。換句話說,類型保護可以保證一個字符串是一個字符串,盡管它的值也可以是一個數字。類型保護與特性檢測并不是完全不同,其主要思想是嘗試檢測屬性、方法或原型,以確定如何處理值。


目前主要有四種的方式來實現類型保護:


6.1.1 in 關鍵字

interface Admin {

 name: string;

 privileges: string[];

} interface Employee {

 name: string;

 startDate: Date;

} type UnknownEmployee = Employee | Admin; function printEmployeeInformation(emp: UnknownEmployee) { console.log("Name: " + emp.name); if ("privileges" in emp) { console.log("Privileges: " + emp.privileges);

 } if ("startDate" in emp) { console.log("Start Date: " + emp.startDate);

 }

}

6.1.2 typeof 關鍵字

function padLeft(value: string, padding: string | number) { if (typeof padding === "number") { return Array(padding + 1).join(" ") + value;

 } if (typeof padding === "string") { return padding + value;

 } throw new Error(`Expected string or number, got '${padding}'.`);

}

typeof 類型保護只支持兩種形式:typeof v === "typename" 和 typeof v !== typename,"typename" 必須是 "number", "string", "boolean" 或 "symbol"。 但是 TypeScript 并不會阻止你與其它字符串比較,語言不會把那些表達式識別為類型保護。


6.1.3 instanceof 關鍵字

interface Padder {

 getPaddingString(): string;

} class SpaceRepeatingPadder implements Padder { constructor(private numSpaces: number) {}

 getPaddingString() { return Array(this.numSpaces + 1).join(" ");

 }

} class StringPadder implements Padder { constructor(private value: string) {}

 getPaddingString() { return this.value;

 }

} let padder: Padder = new SpaceRepeatingPadder(6); if (padder instanceof SpaceRepeatingPadder) { // padder的類型收窄為 'SpaceRepeatingPadder' }

6.1.4 自定義類型保護的類型謂詞(type predicate)

function isNumber(x: any): x is number { return typeof x === "number";

} function isString(x: any): x is string { return typeof x === "string";

}

七、_ 數字分隔符

TypeScript 2.7 帶來了對數字分隔符的支持,正如數值分隔符 ECMAScript 提案中所概述的那樣。對于一個數字字面量,你現在可以通過把一個下劃線作為它們之間的分隔符來分組數字:


const inhabitantsOfMunich = 1_464_301; const distanceEarthSunInKm = 149_600_000; const fileSystemPermission = 0b111_111_000; const bytes = 0b1111_10101011_11110000_00001101;

分隔符不會改變數值字面量的值,但邏輯分組使人們更容易一眼就能讀懂數字。以上 TS 代碼經過編譯后,會生成以下 ES5 代碼:


"use strict"; var inhabitantsOfMunich = 1464301; var distanceEarthSunInKm = 149600000; var fileSystemPermission = 504; var bytes = 262926349;

7.1 使用限制

雖然數字分隔符看起來很簡單,但在使用時還是有一些限制。比如你只能在兩個數字之間添加 _ 分隔符。以下的使用方式是非法的:


// Numeric separators are not allowed here.(6188) 3_.141592 // Error 3._141592 // Error // Numeric separators are not allowed here.(6188) 1_e10 // Error 1e_10 // Error // Cannot find name '_126301'.(2304) _126301 // Error // Numeric separators are not allowed here.(6188) 126301_ // Error // Cannot find name 'b111111000'.(2304) // An identifier or keyword cannot immediately follow a numeric literal.(1351) 0_b111111000 // Error // Numeric separators are not allowed here.(6188) 0b_111111000 // Error

當然你也不能連續使用多個 _ 分隔符,比如:


// Multiple consecutive numeric separators are not permitted.(6189) 123__456 // Error

7.2 解析分隔符

此外,需要注意的是以下用于解析數字的函數是不支持分隔符:


Number()

parseInt()

parseFloat()

這里我們來看一下實際的例子:


Number('123_456') NaN parseInt('123_456') 123 parseFloat('123_456') 123

很明顯對于以上的結果不是我們所期望的,所以在處理分隔符時要特別注意。當然要解決上述問題,也很簡單只需要非數字的字符刪掉即可。這里我們來定義一個 removeNonDigits 的函數:


const RE_NON_DIGIT = /[^0-9]/gu; function removeNonDigits(str) {

 str = str.replace(RE_NON_DIGIT, ''); return Number(str);

}

該函數通過調用字符串的 replace 方法來移除非數字的字符,具體的使用方式如下:


removeNonDigits('123_456') 123456 removeNonDigits('149,600,000') 149600000 removeNonDigits('1,407,836') 1407836

八、<Type> 語法

8.1 TypeScript 斷言

有時候你會遇到這樣的情況,你會比 TypeScript 更了解某個值的詳細信息。通常這會發生在你清楚地知道一個實體具有比它現有類型更確切的類型。


通過類型斷言這種方式可以告訴編譯器,“相信我,我知道自己在干什么”。類型斷言好比其他語言里的類型轉換,但是不進行特殊的數據檢查和解構。它沒有運行時的影響,只是在編譯階段起作用。


類型斷言有兩種形式:


8.1.1 “尖括號” 語法

let someValue: any = "this is a string"; let strLength: number = (<string>someValue).length;

8.1.2 as 語法

let someValue: any = "this is a string"; let strLength: number = (someValue as string).length;

8.2 TypeScript 泛型

對于剛接觸 TypeScript 泛型的讀者來說,首次看到 <T> 語法會感到陌生。其實它沒有什么特別,就像傳遞參數一樣,我們傳遞了我們想要用于特定函數調用的類型。




參考上面的圖片,當我們調用 identity<Number>(1) ,Number 類型就像參數 1 一樣,它將在出現 T 的任何位置填充該類型。圖中 <T> 內部的 T 被稱為類型變量,它是我們希望傳遞給 identity 函數的類型占位符,同時它被分配給 value 參數用來代替它的類型:此時 T 充當的是類型,而不是特定的 Number 類型。


其中 T 代表 Type,在定義泛型時通常用作第一個類型變量名稱。但實際上 T 可以用任何有效名稱代替。除了 T 之外,以下是常見泛型變量代表的意思:


K(Key):表示對象中的鍵類型;

V(Value):表示對象中的值類型;

E(Element):表示元素類型。

其實并不是只能定義一個類型變量,我們可以引入希望定義的任何數量的類型變量。比如我們引入一個新的類型變量 U,用于擴展我們定義的 identity 函數:


function identity <T, U>(value: T, message: U) : T { console.log(message); return value;

} console.log(identity<Number, string>(68, "Semlinker"));



除了為類型變量顯式設定值之外,一種更常見的做法是使編譯器自動選擇這些類型,從而使代碼更簡潔。我們可以完全省略尖括號,比如:


function identity <T, U>(value: T, message: U) : T { console.log(message); return value;

} console.log(identity(68, "Semlinker"));

對于上述代碼,編譯器足夠聰明,能夠知道我們的參數類型,并將它們賦值給 T 和 U,而不需要開發人員顯式指定它們。


九、@XXX 裝飾器

9.1 裝飾器語法

對于一些剛接觸 TypeScript 的小伙伴來說,在第一次看到 @Plugin({...}) 這種語法可能會覺得很驚訝。其實這是裝飾器的語法,裝飾器的本質是一個函數,通過裝飾器我們可以方便地定義與對象相關的元數據。


@Plugin({

 pluginName: 'Device',

 plugin: 'cordova-plugin-device',

 pluginRef: 'device',

 repo: 'https://github.com/apache/cordova-plugin-device',

 platforms: ['Android', 'Browser', 'iOS', 'macOS', 'Windows'],

}) @Injectable() export class Device extends IonicNativePlugin {}

在以上代碼中,我們通過裝飾器來保存 ionic-native 插件的相關元信息,而 @Plugin({...}) 中的 @ 符號只是語法糖,為什么說是語法糖呢?這里我們來看一下編譯生成的 ES5 代碼:


var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r;

}; var Device = /** @class */ (function (_super) {

   __extends(Device, _super); function Device() { return _super !== null && _super.apply(this, arguments) || this;

   }

   Device = __decorate([

       Plugin({ pluginName: 'Device', plugin: 'cordova-plugin-device', pluginRef: 'device', repo: 'https://github.com/apache/cordova-plugin-device', platforms: ['Android', 'Browser', 'iOS', 'macOS', 'Windows'],

       }),

       Injectable()

   ], Device); return Device;

}(IonicNativePlugin));

通過生成的代碼可知,@Plugin({...}) 和 @Injectable() 最終會被轉換成普通的方法調用,它們的調用結果最終會以數組的形式作為參數傳遞給 __decorate 函數,而在 __decorate 函數內部會以 Device 類作為參數調用各自的類型裝飾器,從而擴展對應的功能。


9.2 裝飾器的分類

在 TypeScript 中裝飾器分為類裝飾器、屬性裝飾器、方法裝飾器和參數裝飾器四大類。


9.2.1 類裝飾器

類裝飾器聲明:


declare type ClassDecorator = <TFunction extends Function>(

 target: TFunction

) => TFunction | void;

類裝飾器顧名思義,就是用來裝飾類的。它接收一個參數:


target: TFunction - 被裝飾的類

看完第一眼后,是不是感覺都不好了。沒事,我們馬上來個例子:


function Greeter(target: Function): void {

 target.prototype.greet = function (): void { console.log("Hello Semlinker!");

 };

} @Greeter class Greeting { constructor() { // 內部實現 }

} let myGreeting = new Greeting();

myGreeting.greet(); // console output: 'Hello Semlinker!';

上面的例子中,我們定義了 Greeter 類裝飾器,同時我們使用了 @Greeter 語法糖,來使用裝飾器。


友情提示:讀者可以直接復制上面的代碼,在 TypeScript Playground 中運行查看結果。

9.2.2 屬性裝飾器

屬性裝飾器聲明:


declare type PropertyDecorator = (target:Object,

 propertyKey: string | symbol ) => void;

屬性裝飾器顧名思義,用來裝飾類的屬性。它接收兩個參數:


target: Object - 被裝飾的類

propertyKey: string | symbol - 被裝飾類的屬性名

趁熱打鐵,馬上來個例子熱熱身:


function logProperty(target: any, key: string) { delete target[key]; const backingField = "_" + key; Object.defineProperty(target, backingField, {

   writable: true,

   enumerable: true,

   configurable: true }); // property getter const getter = function (this: any) { const currVal = this[backingField]; console.log(`Get: ${key} => ${currVal}`); return currVal;

 }; // property setter const setter = function (this: any, newVal: any) { console.log(`Set: ${key} => ${newVal}`); this[backingField] = newVal;

 }; // Create new property with getter and setter Object.defineProperty(target, key, { get: getter, set: setter,

   enumerable: true,

   configurable: true });

} class Person { @logProperty public name: string; constructor(name : string) { this.name = name;

 }

} const p1 = new Person("semlinker");

p1.name = "kakuqo";

以上代碼我們定義了一個 logProperty 函數,來跟蹤用戶對屬性的操作,當代碼成功運行后,在控制臺會輸出以下結果:


Set: name => semlinker Set: name => kakuqo

9.2.3 方法裝飾器

方法裝飾器聲明:


declare type MethodDecorator = <T>(target:Object, propertyKey: string | symbol,          

 descriptor: TypePropertyDescript<T>) => TypedPropertyDescriptor<T> | void;

方法裝飾器顧名思義,用來裝飾類的方法。它接收三個參數:


target: Object - 被裝飾的類

propertyKey: string | symbol - 方法名

descriptor: TypePropertyDescript - 屬性描述符

廢話不多說,直接上例子:


function LogOutput(tarage: Function, key: string, descriptor: any) { let originalMethod = descriptor.value; let newMethod = function(...args: any[]): any { let result: any = originalMethod.apply(this, args); if(!this.loggedOutput) { this.loggedOutput = new Array<any>();

   } this.loggedOutput.push({

     method: key,

     parameters: args,

     output: result,

     timestamp: new Date()

   }); return result;

 };

 descriptor.value = newMethod;

} class Calculator { @LogOutput double (num: number): number { return num * 2;

 }

} let calc = new Calculator();

calc.double(11); // console ouput: [{method: "double", output: 22, ...}] console.log(calc.loggedOutput);

9.2.4 參數裝飾器

參數裝飾器聲明:


declare type ParameterDecorator = (target: Object, propertyKey: string | symbol,

 parameterIndex: number ) => void

參數裝飾器顧名思義,是用來裝飾函數參數,它接收三個參數:


target: Object - 被裝飾的類

propertyKey: string | symbol - 方法名

parameterIndex: number - 方法中參數的索引值

function Log(target: Function, key: string, parameterIndex: number) { let functionLogged = key || target.prototype.constructor.name; console.log(`The parameter in position ${parameterIndex} at ${functionLogged} has

   been decorated`);

} class Greeter {

 greeting: string; constructor(@Log phrase: string) { this.greeting = phrase;

 }

} // console output: The parameter in position 0  // at Greeter has been decorated

十、#XXX 私有字段

在 TypeScript 3.8 版本就開始支持 ECMAScript 私有字段,使用方式如下:


class Person {

 #name: string; constructor(name: string) { this.#name = name;

 }


 greet() { console.log(`Hello, my name is ${this.#name}!`);

 }

} let semlinker = new Person("Semlinker");


semlinker.#name; //     ~~~~~ // Property '#name' is not accessible outside class 'Person' // because it has a private identifier.

與常規屬性(甚至使用 private 修飾符聲明的屬性)不同,私有字段要牢記以下規則:


私有字段以 # 字符開頭,有時我們稱之為私有名稱;

每個私有字段名稱都唯一地限定于其包含的類;

不能在私有字段上使用 TypeScript 可訪問性修飾符(如 public 或 private);

私有字段不能在包含的類之外訪問,甚至不能被檢測到。

10.1 私有字段與 private 的區別

說到這里使用 # 定義的私有字段與 private 修飾符定義字段有什么區別呢?現在我們先來看一個 private 的示例:


class Person { constructor(private name: string){}

} let person = new Person("Semlinker"); console.log(person.name);

在上面代碼中,我們創建了一個 Person 類,該類中使用 private 修飾符定義了一個私有屬性 name,接著使用該類創建一個 person 對象,然后通過 person.name 來訪問 person 對象的私有屬性,這時 TypeScript 編譯器會提示以下異常:


Property 'name' is private and only accessible within class 'Person'.(2341)

那如何解決這個異常呢?當然你可以使用類型斷言把 person 轉為 any 類型:


console.log((person as any).name);

通過這種方式雖然解決了 TypeScript 編譯器的異常提示,但是在運行時我們還是可以訪問到 Person 類內部的私有屬性,為什么會這樣呢?我們來看一下編譯生成的 ES5 代碼,也許你就知道答案了:


var Person = /** @class */ (function () { function Person(name) { this.name = name;

   } return Person;

}()); var person = new Person("Semlinker"); console.log(person.name);

這時相信有些小伙伴會好奇,在 TypeScript 3.8 以上版本通過 # 號定義的私有字段編譯后會生成什么代碼:


class Person {

 #name: string; constructor(name: string) { this.#name = name;

 }


 greet() { console.log(`Hello, my name is ${this.#name}!`);

 }

}

以上代碼目標設置為 ES2015,會編譯生成以下代碼:


"use strict"; var __classPrivateFieldSet = (this && this.__classPrivateFieldSet)

 || function (receiver, privateMap, value) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to set private field on non-instance");

   }

   privateMap.set(receiver, value); return value;

}; var __classPrivateFieldGet = (this && this.__classPrivateFieldGet)

 || function (receiver, privateMap) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to get private field on non-instance");

   } return privateMap.get(receiver);

}; var _name; class Person { constructor(name) {

     _name.set(this, void 0);

     __classPrivateFieldSet(this, _name, name);

   }

   greet() { console.log(`Hello, my name is ${__classPrivateFieldGet(this, _name)}!`);

   }

}

_name = new WeakMap();

通過觀察上述代碼,使用 # 號定義的 ECMAScript 私有字段,會通過 WeakMap 對象來存儲,同時編譯器會生成 __classPrivateFieldSet 和 __classPrivateFieldGet 這兩個方法用于設置值和獲取值。

藍藍設計m.73404.com.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 平面設計服務

日歷

鏈接

個人資料

藍藍設計的小編 http://m.73404.com.cn

存檔

主站蜘蛛池模板: 久久久久国产精品一区二区 | 国产精品久久久久久久久久久新郎 | 欧美无砖专区免费 | 自拍偷拍第二页 | 欧美激情欲高潮视频在线观看 | 69视频免费 | 精品国产一区二区三区av性色 | 国产精品久久毛片av大全日韩 | 精品在线播放视频 | 一级片在线| 日本天堂在线播放 | 国产av国片精品 | 六月丁香av | 又色又爽又黄18禁美女裸身无遮挡 | 日韩三级中文字幕 | 亚洲中字幕日产av片在线 | 国内av| 成年人免费在线看 | 国产偷人爽久久久久久老妇app | 午夜视频体内射.com.com | 亚洲一区二区精品在线 | 欧美精品一区二区三区视频 | 亚洲无人区码一码二码三码的含义 | 2级黄色片 | 亚洲а∨天堂久久精品9966 | 色噜噜狠狠色综合欧洲 | 66亚洲一卡2卡新区成片发布 | 亚洲激情网站 | 波多野结衣不打码视频 | 国模小黎自慰gogo人体 | 亚洲综合福利 | 日本做暖暖xo小视频 | av永久天堂一区二区三区 | www.av成人| 亚洲美女偷拍 | 香蕉av福利精品导航 | av小说区 | 极品粉嫩嫩模大尺度无码视频 | 嫩草在线观看视频 | 亚洲天堂免费在线观看视频 | 99久久99久久久精品齐齐 | 欧美午夜一区二区 | 97成人超碰| 女人被男人爽到呻吟的视频 | 性生交大片免费看视频 | 亚洲国产日韩精品 | 国产在线一级片 | 精品亚洲国产成av人片传媒 | 北条麻妃99精品久久朝桐光 | 日韩一级生活片 | 中文在线观看免费高清 | 亚洲成色www久久网站瘦与人 | 欧美黄绝喷潮片 | 精品乱码久久久久久中文字幕 | 理伦少妇片一级 | 亚洲精品乱码久久久久久久久久 | 91福利在线免费观看 | 亚洲第一视频网 | 中文字幕a∨在线乱码免费看 | 日韩五码| 国产午夜福利片在线观看 | 成人免费精品视频 | 人妻精品久久久久中文字幕 | 国产精品亚洲欧美大片在线看 | 国产精品一区二区三区久久 | 国产精品久久在线 | www.色午夜.com| 婷婷网色偷偷久久久99超碰 | 亲嘴扒胸摸屁股激烈网站 | 饥渴丰满的少妇喷潮 | 久久久久久久久99精品大 | 一级视频在线播放 | 松岛枫av在线一区二区 | 无码av动漫精品一区二区免费 | 久久99亚洲精品 | 亚洲成人在线网站 | 国产无人区卡一卡二卡三网站 | 蜜桃香蕉视频 | 日本一区二区三区在线观看 | 97黄色网| 一级α片免费看刺激高潮视频 | 欧美三级a | 日本爽爽爽爽爽爽在线观看免 | 九九伊在人线 | 欧美日韩在线视频一区二区 | 老妇女性较大毛片 | 国语做受对白xxxxx在线流氓 | 亚洲成a人片在线播放 | 任你躁国产自任一区二区三区 | 黄色无毒视频 | 亚洲乱码日产精品bd在线 | 亚洲系列中文字幕 | 久久午夜网站 | 免费看片免费播放国产 | 日本无遮挡真人祼交视频 | 91色噜噜| 少妇一区二区三区 | 亚洲精品视频久久 | 99久久久无码国产精品不卡 | 2020久久香蕉国产线看观看 | 韩国性生交大片免费观看视频 | 国产成人精品一区二区三区在线 | 日本特黄特色大片免费视频老年人 | 国产亚洲精品aaaa片app | 国产视频一二三区 | 亚洲毛片av | 日韩av图片 | 国产三区精品 | 91激情在线视频 | 国产免费叼嘿网站免费 | 深夜啪啪 | 欧美精品欧美精品系列 | 麻豆亚洲精品 | 国产麻豆天美果冻无码视频 | 热久久精品| 在线观看1区 | 亚洲欧洲日产国码av老年人 | 毛片一毛片二毛片三国产片 | 毛片基地黄久久久久久天堂 | 久艹在线 | 草草视频在线播放 | 人人妻人人添人人爽日韩欧美 | 亚洲成在人线在线播放无码 | 一区二区三区四区不卡 | 国产婷婷一区二区三区 | 亚洲成a人片在线播放 | 好吊色欧美一区二区三区视频 | 波多野结衣视频免费看 | 波多野结衣视频免费看 | 综合激情四射 | 在线免费精品 | 欧美成人a交片免费看 | 国产成人免费一区二区60岁 | 欧美性猛交99久久久久99按摩 | 日韩在线不卡免费视频一区 | www五月| 亚洲一级黄色大片 | 国产视频一二三区 | 国产黄色在线免费看 | 亚洲欧美在线播放 | 97在线观看免费 | 欧美一级a俄罗斯毛片 | 中文字幕日韩欧美一区二区三区 | 四虎成人永久免费视频 | 久久久黄色一级片 | av福利在线看 | 国产精品无码dvd在线观看 | 中文字幕 亚洲精品 第1页 | 91精品国产综合久久久蜜臀 | 久久久无码中文字幕久... | 国产精品久久久久久久乖乖 | 99精品国产成人一区二区 | 香港三日三级少妇三级99 | 少妇性荡欲午夜性开放视频剧场 | 欧美日韩国产免费观看 | 337p日本欧洲亚洲大胆精蜜臀 | 一区二区三区国产亚洲网站 | 秋霞影院午夜丰满少妇在线视频 | 在线看片资源 | 国产精品久久久久久久久久免 | 石原莉奈av调教中文字幕 | 国产av无码久久精品 | 成人欧美日韩一区二区三区 | 麻豆人人妻人人妻人人片av | 午夜黄色网 | 免费av网站在线播放 | 中文字幕乱码一区二区三区 | 中文字幕av网 | 免费拍拍拍网站 | 中文字幕日韩精品无码内射 | 国产成人无码一区二区在线观看 | 久久久999精品视频 久久久99久久久国产自输拍 | 无码免费一区二区三区免费播放 | 日韩伦理一区二区三区 | 国产理论在线观看 | 色欲av伊人久久大香线蕉影院 | av毛片在线播放 | 玖玖国产 | 亚洲综合色婷婷在线观看 | 免费专区丝袜调教视频 | 国产亚洲综合av | 久久精品无码一区二区三区免费 | 日韩1级片 | 久久久人人人 | 天天综合影院 | 欧美 亚洲 另类 偷偷 自拍 | 色偷偷人人澡人人爽人人模 | 午夜秋霞网 | 动漫av纯肉无码av在线播放 | 日产中文字幕一码 | 秋霞一区 | 91久久久www播放日本观看 | 在线看91 | 国产视频69 | 91视频安卓版| 国产欧美日韩综合精品二区 | av在线黄| 美女扒开奶罩露出奶头视频网站 | 99综合视频| 欧洲美女黑人粗性暴交视频 | 欧美性jizz18性欧美 | 久久久久久久久久久免费av | 成人影片一区免费观看 | 亚洲青青草 | 91香蕉视频在线看 | 欧美aa大片欧美大片观看 | 精品国产乱码久久久久久郑州公司 | 欧美性一区二区 | 成人午夜看片 | 欧美精品国产 | 少妇高潮太爽了在线观看 | 亚洲中文字幕无码一区二区三区 | 三上悠亚人妻中文字幕在线 | 亚洲成av人片在线观看无 | 不卡av影片 | 高潮射精日本韩国在线播放 | 国产91在线播放九色000 | 久久久久久久久久久久久女国产乱 | 亚洲 自拍 另类 欧美 丝袜 | 成人深夜视频 | 91中文字幕在线 | 欧美精品亚洲精品日韩精品 | 欧美精品一区二区三区在线四季 | 中文字幕在线精品中文字幕导入 | 国产成人一区二区啪在线观看 | 国产精品久久777777换脸 | 成人h动漫精品一区二区器材 | 山东熟女啪啪哦哦叫 | 成人免费观看在线视频 | 日本久久高清一区二区三区毛片 | 日本中文字幕一区二区有码在线 | 色七七网站 | lutube成人福利在线观看污 | 黑人大战亚洲人精品一区 | 色狠狠色噜噜av天堂一区 | 福利av在线 | 久久精品91视频 | 亚色图 | 亚洲国产成人精品女人久久久 | 亚洲天堂岛 | 男女啪啪永久免费观看网站 | 国产特黄特色大片免费视频 | 美女天天操 | 人妻丰满熟妇无码区免费 | 久久免费激情视频 | 亚洲福利网址 | 亚洲人成无码网站久久99热国产 | 亚洲精品大全 | 一级黄色毛片视频 | 狠狠色噜噜综合社区 | 在线永久免费观看黄网站 | 精品国产一区二区三区四区阿崩 | 亚洲国产欧美国产综合一区 | 欧美亚韩一区二区三区 | 午夜无码人妻av大片色欲 | 在线中文视频va | 成人免费观看网站 | 中文字幕日本在线观看 | 久久er99热精品一区二区 | 四虎在线影院 | 一区二区在线免费视频 | 一二三四社区在线中文视频 | 国产黄色录像片 | 成人免费精品 | 少妇翘臀亚洲精品av图片 | 久久精品国产免费一区 | 欧美综合自拍亚洲综合图 | 成人做爰69片免费看网站野花 | 国产精品国产免费无码专区不卡 | 美女扒开屁股让男人桶 | 久久精品成人热国产成 | 韩国精品在线 | 成人黄色激情视频 | 日韩人妻ol丝袜av一二区 | 成年人午夜免费视频 | 国产成人小视频在线观看 | 国产精品igao视频网网址 | 久久久综合香蕉尹人综合网 | 玖玖爱精品 | 视频一区免费观看 | 黑人巨大精品欧美 | 人与兽黄色毛片 | 天天躁日日躁狠狠躁av中文 | 欧美日韩另类一区二区 | 亚洲性自拍 | 中文日韩v日本国产 | 免费黄色a级片 | 青青国产在线观看 | 中文字幕亚洲色妞精品天堂 | 57pao成人国产永久免费视频 | 精品乱码久久久久久中文字幕 | 国产舌乚八伦偷品w中 | 国产乡下妇女做爰 | 国产嫩草影院久久久久 | 狠操av| 天堂va在我观看 | 国产人伦激情在线观看 | 特级做a爰片毛片免费69 | 国产偷久久一区精品69 | 99精产国 | 久久久久成人片免费观看蜜芽 | 国产99久久久国产精品潘金 | 亲子伦一区二区三区观看方式 | 女警高潮潮一夜一区二区三区毛片 | 成人在线免费网站 | 精品在线观看一区 | 亚洲国产精品va在线看黑人动漫 | 91美女视频在线观看 | 色婷婷美国农夫综合激情亚洲 | 日韩精品久久久久久免费 | 性无码专区无码 | 国内毛片毛片毛片 | 日韩福利视频在线观看 | 亚洲欧洲精品一区二区三区不卡 | 日日干日日干 | 亚洲欧洲精品a片久久99 | 国产一级做a爰片毛片 | 国产精品永久久久久久久久久 | 午夜精品一区二区三区在线视 | 国产男女猛烈无遮挡免费网站 | 超碰av在线| 久久免费国产精品1 | 天堂a免费视频在线观看 | 扒开双腿吃奶呻吟做受视频 | 在线视频观看一区二区 | 热久久网站 | 久久久精品麻豆 | 国产精品免费久久久久久久久久中文 | 欧美乱做爰xxxⅹ久久久 | 福利在线观看 | 久久国产一级片 | 极品少妇xxxx精品少妇偷拍 | 综合色爱 | 久久久久久久久嫩草精品乱码 | 偷看农村女人做爰毛片色 | 粉嫩小泬无遮挡久久久久久 | 天天躁日日躁aaaaxxxx | 亚洲男人天堂网站 | 97国产精品视频人人做人人爱 | 伊人日日夜夜 | 96精品高清视频在线观看软件 | 人妻少妇偷人精品无码 | 永久免费精品视频网站 | 欧美高清在线一区 | 石原莉奈一区二区三区在线观看 | 日本一级待黄大片 | 无码中文字幕人妻在线一区二区三区 | 日本aⅴ写真网站 | 精品无码一区在线观看 | 韩国三级中文字幕hd久久精品 | 日韩av黄色片 | 吃奶呻吟打开双腿 | 91插插插插插插插插 | 精品极品三大极久久久久 | 精品www| 久久久久久伊人高潮影院 | 亚洲中文字幕在线观看 | 一区www | 天堂资源在线 | 五月天久久久久久九一站片 | 狠狠色噜噜狠狠狠狠2021天天 | 欧美日韩国产成人在线 | 对白刺激国产子与伦 | 黑人一级黄色片 | 狠狠艹逼| 欧美天堂在线 | 中文日韩av| 看黄色一级视频 | 国产东北女人做受av | 白嫩漂亮的美女ktv啪啪界 | 精品偷拍一区二区三区在线看 | 国产在线不卡av | 99久久婷婷国产综合亚洲 | 男女性爽大片视频 | 亚洲美女自拍视频 | 日韩在线免费播放 | 国产毛片久久久久久 | 91欧美成人 | 欧美另类videos | 五月激情av | 蜜臀久久精品久久久用户群体 | 国内av在线 | 日本一区二区三区在线免费观看 | 国产精品国产精品国产专区不卡 | 天堂精品一区 | 免费播放毛片 | 欧美 亚洲 一区 | 蜜臀av免费一区二区三区 | 国产人澡人澡澡澡人碰视 | 国产免费黄色小视频 | 男人天堂久久久 | 国产精品www | 国产精品人妻熟女毛片av | 色中文字幕 | 免费看三级毛片 | 国产一级特黄aa大片出来精子 | 福利一区二区视频 | yy1111111少妇影院乱码 | 一本大道久久久久精品嫩草 | 国内精品国产三级国产在线专 | 国产美女久久久 | 国产精品视频一区二区二 | 国内精品自在自线 | 国产精品区一区二区三 | 国产视频一区在线播放 | 中日韩精品视频在线观看 | 超碰97在线播放 | 日本在线看片免费人成视频1000 | 青草精品国产福利在线视频 | 日本特级片 | 美国av毛片| 国产精品国产三级国产av中文 | 国产精品人人爽 | 中文字幕日本一区 | 动漫精品一区 | 午夜视频在线观看视频 | 国产色99精品9i | 久草在线视频首页 | 国产精品无码无卡无需播放器 | 又紧又大又爽精品一区二区 | 亚洲www在线观看 | 人妻有码av中文字幕久久琪 | 网址av | 极品videosvideo喷水 | 国产精品熟妇视频国产偷人 | 欧美怡红院免费全部视频 | 人妻中出无码一区二区三区 | 欧美精品videos另类日本 | 国产偷人妻精品一区二区在线 | 一级a性色生活片毛片 | 国产精品久久一区性色av图片 | 97在线看免费观看视频在线观看 | zljzljzlj日本人免费 | 国产情侣出租屋露脸实拍 | 国产精品任我爽爆在线播放 | 成人午夜高潮a∨猛片 | a∨在线观看 | 超碰在线人人干 | 国产午夜精品一区二区三区四区 | 亚洲日本中文字幕在线 | 日日夜夜撸啊撸 | 波多野一区二区 | 特黄三级男人添女人下面 | 日韩中字幕 | 97在线观看免费观看高清 | 人妻夜夜爽天天爽一区 | 黑人干亚洲女人 | 国产小视频91 | 91亚洲一区 | 2020久久香蕉国产线看观看 | 雨宫琴音av一区在线播放 | 久久香蕉国产线看观看猫咪av | 一区二区三区成人久久爱 | 免费观看全黄做爰大片国产 | 亚洲精品国产crm | 五月天天丁香婷婷在线中 | 亚欧美精品 | 久久久亚洲裙底偷窥综合 | 欧美精选一区二区三区 | 国产精品热久久 | 夜夜做爰www | 午夜性刺激免费看视频 | 性欧美videos高清hd4k | 中文字幕永久免费 | 亚洲精品888 | 91在线看片| 国产噜噜噜噜久久久久久久久 | 波多野结衣小视频 | 免费看三级黄色片 | 成人午夜看片 | 成人精品视频在线看 | 黄色avav | 国产成人免费av一区二区午夜 | 久久精品亚洲一区二区三区浴池 | 丁香婷婷综合激情 | 黑人巨茎大战欧美白妇 | 亚洲精品入口a级 | 91美女啪啪 | xnxx女第一次| 国产日韩av一区二区 | 欧美日韩五月天 | 一色道久久88加勒比一 | 国产成人精品国内自产拍免费看 | 欧美性猛交内射兽交老熟妇 | 九九九在线视频 | 久草视频在线资源 | 国产又白又嫩又紧又爽18p | 中文字幕熟妇人妻在线视频 | 新版天堂资源中文8在线 | 国产成人久久精品激情 | 亚洲一区二区三区四区五区不卡 | 国产在线视频www色 日韩精品av一区二区三区 | 成人一级毛片视频 | 久久久综合网 | 永久免费观看美女裸体的网站 | 黄色av片三级三级三级免费看 | 日本大片免a费观看视频 | 亚洲最大成人网色 | 国产亚洲精品久久久久久久久久 | 欧美视频在线观看亚洲欧 | 国产精品豆花视频www | 国产一区二区三区无码免费 | 女人精69xxxⅹxx猛交 | 久久影视中文字幕 | 国产日韩欧美亚欧在线 | 黄色福利站 | 成人性生交大片免费看冫视频 | 香蕉视频911| 亚洲第一在线播放 | 精品少妇人妻av一区二区三区 | 最近2019中文字幕大全第二页 | 一级做受大片免费视频 | 国产又色又爽又黄又免费软件 | xxx国产在线观看 | 免费又黄又爽又猛的毛片 | 无码人妻精品一区二区三区久久久 | 狂揉吃奶胸高潮视频免费 | 嫩草社区 | 久久精品视频在线 | 免费黄色资源 | 亚洲午夜精品a片久久www慈禧 | 黑色超薄丝袜脚交爽91 | 丁香六月欧美 | 亚洲日本va中文字幕 | 91视频免费视频 | 成人黄色激情视频 | 日韩影视一区二区三区 | 超h高h肉h文教室学长男男视频 | 国产精品久久久久久久久久蜜臀 | 国产免费激情视频 | 欧美性猛交xxxx免费视频软件 | 日韩在线观看免费 | 99视频精品全部免费免费观看 | 国产一区二区三区四区五区密私 | 国产精品―色哟哟 | 成人午夜精品久久久久久久网站 | 午夜尤物丰满大乳美女 | 在线精品亚洲欧美日韩国产 | 91国内精品自线在拍白富美 | av在线精品| 日韩精品播放 | 亚洲精品午夜aaa久久久 | 波多野结衣在线视频网站 | 欧美无乱码久久久免费午夜一区 | 成人在线免费网站 | 午夜欧美视频 | 国产精品vⅰdeoxxxx国产 | 国内精品视频 | 天天做天天爱天天爽综合网 | 欧美一区二区人人喊爽 | 97香蕉碰碰人妻国产欧美 | 丝袜 制服 清纯 亚洲 | 97精品一区二区视频在线观看 | 欧美男女交配视频 | 日本黄色短片 | 中文字幕88| 人妻 丝袜美腿 中文字幕 | 国产色视频一区二区三区qq号 | 一本之道久久 | 色狠狠色噜噜av天堂一区 | 亚洲视频自拍偷拍 | 亚洲国产精品写真 | 国产精品va无码一区二区 | 中文字幕日韩二区一区田优 | 亚洲日韩av无码一区二区三区 | 欧美日韩一区二区三区在线观看视频 | 国产欧美一区二区三区国产幕精品 | caoporn免费在线视频 | 国产精品久久久免费视频 | 亚洲高清视频在线 | 九九热在线视频免费观看 | 三级五月天 | 97色资源| 国产精品夜夜嗨视频免费视频 | 少妇无套内谢免费视频 | 成人a视频 | 黄色毛片网 | 男人在线天堂 | 国产一级桃视频播放 | 日韩一区免费 | 精品偷拍被偷拍在线观看 | 久久精品中文字幕一区二区三区 | 亚洲欧美激情国产综合久久久 | 欧洲老妇做爰xxxⅹ性视频 | 一区二区三区波多野结衣 | 国产亚洲精品自拍 | 国内精品久久久久影院男同志 | 成人性生交大片免费看冫视频 | 少妇饥渴偷公乱第75章 | 97无码免费人妻超级碰碰碰碰 | 色与欲影视天天看综合网 | 日本一区二区精品视频 | 91伦理视频 | 国产日本一级二级三级 | 免费av网站大全 | 久久免费小视频 | 精品无人区无码乱码毛片国产 | 色播综合 | 国模精品一区 | 男人猛躁进女人免费播放 | 亚洲人成欧美中文字幕 | 国产精品久久久久久妇女 | 久久国产欧美日韩精品 | 久久视频免费 | 成人国产精品免费观看 | 丁香色婷婷 | 亚洲一二区视频 | 毛片专区| 毛片av在线播放 | 久久天天躁夜夜躁狠狠躁2022 | 免费在线日韩av | 久久久www成人免费毛片 | 国产拍揄自揄精品视频麻豆 | 亚洲人成网站18禁止 | 天堂资源在线播放 | 中年两口子高潮呻吟 | 国产免费av在线 | 夜晚福利视频 | 亚洲成a人片 | 美女福利一区 | 国精品人妻无码一区二区三区蜜柚 | 女同一区二区免费aⅴ | 欧美色图影院 | 不卡中文一二三区 | 电车痴汉在线观看 | av在线免播放器 | 国产毛片毛片毛片毛片毛片 | 91爱爱网站 | 亚洲视频二区 | 荫蒂添的好舒服视频囗交 | 亚洲国产精品第一区二区 | 在线播放第一页 | 日本久久激情 | 麻豆精品免费视频 | 手机国产乱子伦精品视频 | 丰满放荡岳乱妇91ww | 午夜精品久久久久久久久 | 毛片毛片毛片 | 久久成人麻豆午夜电影 | 国产三级中文字幕 | av影视在线| 欧美另类视频在线观看 | 久久久亚洲裙底偷窥综合 | 自拍成人福利视频免费在线观看 | 人人草人 | 91嫩草私人成人亚洲影院 | 亚洲午夜av| 成年人三级网站 | 男人天堂亚洲天堂 | 在线看的毛片 | 98精品国产 | 精品黄色一级片 | 亚洲日韩中文字幕一区 | 国产xxxx高清在线观看 | a视频在线播放 | 国精产品999国精产 亚洲 欧美 综合 在线 精品 | 亚洲最大成人网站 | 日韩精品在线观看视频 | 日本xxxx裸体xxxx视频大全 | 69xxⅹ性视频免费 | 国产a久久麻豆入口 | 精品久久不卡 | 国产精品一级二级三级 | 色呦呦在线观看视频 | 视频一区 视频二区 视频三区 视频四区 国产 | 天堂av成人 | 一级毛片一级黄片 | 日本欧美久久久免费播放网 | 欧美成人高清视频在线观看 | 偷拍一区二区三区在线婷婷 | 国产做a爰片久久毛片a片 | 三上悠亚日韩精品二区 | 国产精品人人爱一区二区白浆 | 夜夜夜操 | 久久爽久久爽久久免费观看 | 国产精品久久久久久久龚玥菲 | 成人片在线播放 | 香蕉久草| 精品欧美一区免费观看α√ | 亚洲国产精品久久久久久女王 | 国产在线不卡视频 | 欧美性大战久久久久久 | 亚洲视频免费在线播放 | 亚洲一级久久 | 国产精品9999久久久久 | 欧美色一区二区三区在线观看 | 午夜美女在线 | 久久国产色 | 国产精品夜间视频香蕉 | av手机在线免费观看 | 国产精品1234 | 69亚洲| 久久久九九 | 成人羞羞网站入口免费 | 日本伦理中文字幕 | 亚洲中久无码永久在线观看同 | 亚洲熟妇av一区二区三区漫画 | 国产又粗又猛又爽又黄的视频一 | 艹逼在线观看 | 性欧美日本 | 国产亚洲精品久久久久的角色 | 亚洲成av人在线观看网站 | 亚洲第一网站在线观看 | 国产亚洲成av人片在线观看 | 中国女人内谢69xxxx | 调教女m荡骚贱淫故事 | 久久综合导航 | 波多野结衣视频一区二区 | 一级做人爱c黑人影片 | 国产成人无码av一区二区在线观看 | 在线观看亚洲一区 | 亚洲精品久久久久久宅男 | 午夜精品一区二区三区免费视频 | 综合色亚洲 | 夜夜天天拍拍 | 免费一级欧美片在线播放 | 欧美视频在线观看视频 | 美女黄网站成人免费视频 | √最新版天堂资源在线 | 国产91在线播放9色不卡 | 动漫av网站免费观看 | 亚洲综合av一区二区 | 日韩一区二区三区精品视频 | 亚洲天堂免费观看 | 一级不卡毛片 | 超碰精品| 99热免费在线观看 | 国产一级片在线 | 亚洲国产成人005 | 国产中文一区二区三区 | 无码国产精品一区二区免费式芒果 | 人人妻人人爽人人澡av | 国产激情久久久久影院 | 真人做爰高潮全过程毛片 | 亚洲专区av | 人妖性生活视频 | 欧美日韩精品一区二区三区四区 | www.亚洲黄色 | 国产伦子沙发午休系列资源曝光 | 欧美爱爱视频网站 | 欧美乱妇无乱码大黄a片 | 国产欧美精品区一区二区三区 | 蜜桃av噜噜一区二区三区 | 国产无套内射普通话对白 | 一线二线三线天堂 | 亚洲五月婷 | 亚洲精品成人在线 | 国产精品9999久久久久 | 国产精品乱轮 | 丁香六月婷婷开心婷婷网 | 男女动漫18动漫免费 | 国产在线拍揄自揄拍无码视频 | 一本大道久久久久精品嫩草 | 中文字幕乱码免费看电影 | 国产肉体xxxx裸体784大胆 | 91国偷自产一区二区三区蜜臀 | 中文字幕精品无码一区二区 | 网红福利视频 | 人妖av在线 | 求个av网站 | 中文字幕日韩欧美一区二区 | 国产肉体ⅹxxx137大胆视频 | 台湾亚洲精品一区二区tv | 少妇偷乱偷乱视频在线 | 国产成人毛片在线视频 | 久久久精品免费看 | 夜夜爱夜夜做夜夜爽 | 日韩午夜无码精品试看 | 亚洲人网站 | 久久久久久久久毛片精品 | 成人午夜在线视频 | 日本高清视频一区二区三区 | 日韩视频三区 | 亚洲人免费 | 日韩精品国产一区 | 国产日韩精品欧美一区喷水 | 综合久久五月天 | 暖暖在线日本免费高清最新版 | 国内毛片毛片毛片 | 色综合天天色 | 久久久久久影院 | 国产无遮挡aaa片爽爽 | 国产激情一区二区三区成人免费 | 情趣蕾丝内衣少妇啪啪av | 久久天天躁狠狠躁夜夜av不卡 | 朝鲜一级特黄真人毛片 | 欧美日韩色片 | 国产一在线精品一区在线观看 | 欧美成人午夜影院 | 亚洲欧洲中文日韩av乱码 | 日本激情视频一区二区三区 | 91嫩草在线播放 | 亚洲另类图区 | 日批视频 | 午夜福利理论片高清在线观看 | 日韩美女中文字幕 | 激情婷婷 | 国产又大又粗又爽的毛片 | 好紧好湿好黄的视频 | 黄色片网站免费观看 | 蜜桃综合网 | 国产性猛交xxxⅹ交酡全过程 | 日韩中文字幕亚洲 | 国产一区二区三区在线观看免费 | 在线精品亚洲一区二区 | 丰满少妇理论片bd高清 | 亚洲免费黄色网 | 亚洲欧美日韩精品久久 | 一个色综合网 | 国产丝袜视频 | 国产夜色视频 | 男人天堂你懂的 | 欧美叉叉叉bbb网站 色吊丝永久性观看网站 | 蜜桃av免费在线观看 | 免费的又色又爽又黄的片捆绑美女 | 美女隐私黄www网站免 | 精品国产乱码一区 | 天天综合入口 | 亚欧美在线观看 | 亚洲精品av羞羞禁网站 | 国产精品欧美激情在线 | 一本大道久久香蕉成人网 | 久久国产精品网站 | 51永久免费观看国产nbamba | 久久久久久久久久网 | 日本在线高清 | 欧美最猛黑人xxxx黑人猛交98 | 天堂久久天堂av色综合 | 夜夜躁狠狠躁日日躁av | 熟妇高潮精品一区二区三区 | 欧美一区二区三区四 | 巨大乳女人做爰视频在线看 | 丰满爆乳在线播放 | 69亚洲乱 | 日韩精品黄 | 国产在线精品一区二区三区不卡 | 视色av| 欧美狂躁少妇xxx | 两女女百合互慰av赤裸无遮挡 | 又白又嫩毛又多15p 国产热の有码热の无码视频 | 丁香婷婷深情五月亚洲 | 亚洲老妈激情一区二区三区 | 五月婷婷丁香激情 | 久久香蕉超碰97国产精品 | 少妇性l交大片免费观看冫 少妇性l交大片免费快色 | 俺也来俺也去俺也射 | 国产午夜影院 | 一区二区日韩 | 在线看亚洲 | 四虎影视在线 | 成人性生交大片免费看视 | 香蕉视频影院 | 久久久久久久久久久免费av | 成人涩涩 | 亚洲欧美国产一区二区 | y11111少妇 | 日本一级视频 | 性――交――性――乱睡觉 | 国产午夜夜伦鲁鲁片 | jizz另类| 东北女人毛多水多牲交视频 | 日韩人妻精品一区二区三区视频 | 丁香五精品蜜臀久久久久99网站 | 杨贵妃情欲艳谭三级 | 无码av天天av天天爽 | 国产精品久久久久久爽爽爽 | 亚洲四区 | 九色在线观看 | 成人免费性视频 | 91亚洲乱码卡一卡二卡新区豆 | 91美女片黄 | 亚洲精品欧美激情 | 日韩av三区 | 一区二区三区四区国产 | 国产高清在线精品一区二区三区 | 91国偷自产一区二区三区 | 日本色中色 | 久草在线免费福利 | 久久国产v综合v亚洲欧美蜜臀 | 色偷偷网站 | 99久久无码一区人妻 | 国产精成人 | 九九九九精品视频在线观看 | 91精品在线视频观看 | 98tv| 久久精品黄aa片一区二区三区 | 日本高清熟妇老熟妇 | 亚洲国产女人aaa毛片在线 | 99国产精品自在自在久久 | 欧美在线你懂的 | 热99精品| 人妻在卧室被老板疯狂进入 | 成人在线欧美 | 国产成人久久av免费高清密臂 | 日日摸天天添天天添破 | 麻豆chinese| 国产精品第7页 | 黄色性网站 | 免费一级男女裸片 | 国产成人精品久久 | 欧洲性生活片 | 美腿丝袜亚洲色图 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 国内精品视频在线 | 久久综合中文字幕 | 无码日韩精品一区二区免费 | 91在线观看视频网站 | 亚洲黄色片网站 | 国产又黄又硬又湿又黄的网站免费 | 国产精品天干天干在线 | 国产精品人人爽人人爽 | 精品蜜桃av | 佐佐木明希av在线 | 欧洲无码一区二区三区在线观看 | 最近中文字幕免费mv在线视频 | 少妇饥渴放荡91麻豆 | 爱色av网站| 丁香六月啪啪 | 狠狠干干干 | 亚洲性生活大片 | 三级网站视频在在线播放 | 成人涩涩网站 | www黄色av| 国产白嫩初高中害羞小美女 | 日日摸夜夜添夜夜爽免费视频 | 天天弄 | 俺去俺来也在线www色官网 | 四十五十老熟妇乱孑视频 | 国产卡一卡二在线 | 亚洲乱码国产乱码精品精软件 | 日韩极品在线 | www亚洲人 | 天天爽夜夜操 | 成人免费播放视频 | 九九久久九九久久 | 大尺度做爰呻吟舌吻情头 | 伊人久久一区 | www嫩草| 久久中文字幕人妻熟av女 | 天堂a视频| 国产精品久久久一区二区 | 久久久久人 | 欧美精品久久久久 | tai9国产一区二区 | 狠狠插视频| av影片在线播放 | 中文字幕一区二区在线视频 | 国产在线伊人 | 中文字幕日韩专区 | 女同久久另类99精品国产 | 人人草人人干 | 欧美日韩一卡二卡 | 久久久人体 | 亚洲国产精品激情在线观看 | 久久免费在线视频 | 欧美人体做爰大胆视频 | 黄色国产精品 | 国产无在线观看软件 | 成人h视频在线 | 成人欧美日韩一区二区三区 | 黄色大片免费网站 | 国产一线二线三线wwww | 波多野结衣a级片 | 亚洲黄网在线 | 亚洲女同一区二区 | 在线黄色免费网站 | 国产二区视频在线观看 | 欧美二级片 | 免费在线观看a视频 | 亚洲奶水xxxx哺乳期tv | 亚洲精品成人片在线观看 | 辽宁熟女高潮狂叫视频 | 99久久国产综合 | 亚洲h| 国产亚州精品女人久久久久久 | 国产成人在线观看免费网站 | 中文字幕人成乱码熟女免费 | 美女隐私免费观看视频 | 亚洲精品久久久一线二线三线 | 成人动作片 | 免费无码的av片在线观看 | 中文字幕av免费观看 | 伊人久久国产精品 | 免费一级片网址 | 亚洲欧美日韩一区二区 | 日本一区高清 | 国产一线天粉嫩馒头极品av | 欧美国产成人精品一区二区三区 | 久久无码高潮喷水 | 亚洲成av人片香蕉片 | 伊人久久五月丁香综合中文亚洲 | 成人免费视频一区二区 | 国产综合亚洲精品一区二 | 亚洲午夜色 | 黄色一级片久久 | 亚洲午夜精品久久久久久久久久久久 | 国产黄a三级三级看三级 | 秋霞网av | 日韩中文字 | 国产午夜夜伦鲁鲁片 | 91丨九色丨蝌蚪丰满 | 99热黄色| 国内精品久久久久影视老司机 | 情侣酒店偷拍一区二区在线播放 | 天堂网91| 国产精品入口a级 | 日韩欧美亚洲国产精品字幕久久久 | 亚洲精品一区二区另类图片 | 欧美资源| 国产在线激情视频 | 巨大乳做爰视频在线看 | 成人午夜精品一区二区三区 | 欧美一区二区在线播放 | 裸体歌舞表演一区二区 | 国产午夜精品一区二区三区嫩草 | 高h大肚孕期孕妇play | 久草热8精品视频在线观看 人妻互换 综合 | 91视频免费网站 | 国产无线一二三四区手机 | 激情网网站 | 男人用嘴添女人下身免费视频 | 97久久久久久久 | 亚洲午夜精品久久久久久app | 国产福利视频 | 国产成人精品免费视频 | 91视频在线 | julia一区| 成人在线免费观看网址 | 国产欧美二区 | 熟女人妻水多爽中文字幕 | 国产资源在线看 | 92看片淫黄大片欧美看国产片 | 大又大又粗又硬又爽少妇毛片 | 精品女同一区二区三区在线播放 | av作品在线| 日韩欧美一级在线 | 日韩一卡2卡3卡新区乱码来袭 | 亚洲欧美一区二区三区久久 | 激情综合色五月六月婷婷 | 国产精品视频偷伦精品视频 | av在线播放国产 | 美女乱淫免费视频网站 | 久操视频网站 | 欧美激情肉欲高潮视频 | 日韩成人在线免费视频 | 中文字幕在线一区二区三区 | xxxx国产一二三区xxxx | 丰满少妇人妻无码 | 极品美女娇喘呻吟热舞 | 狠狠色噜噜狠狠狠888米奇视频 | 成人免费的视频 | 欧美亚洲少妇 | 亚洲天堂99 | 亚洲痴女| 狠狠躁夜夜躁人人爽天天5 中国china露脸自拍性hd | 天堂网一区二区 | 亚洲国产无套无码av电影 | 人人妻人人澡人人爽超污 | 亚洲精品国产欧美在线观看 | 欧美整片在线观看 | jizz国产老头老太婆 | 81国产精品久久久久久久久久 | 国产色一区 | 国产成人小视频在线观看 | 3344久久日韩精品一区二区 | 亚洲国产精品91 | 成人久久久精品国产乱码一区二区 | 欧洲精品码一区二区三区 | 国产韩国精品一区二区三区久久 | 亚洲成人高清在线观看 | 亚洲精品乱码久久久久久9色 | 男人在线网站 | 成人18视频免费69 | 色妞av永久一区二区国产av | 亚洲国产日韩欧美 | 丁香婷婷激情国产高清秒播 | 日本xxxx少妇高清hd | 日本少妇激三级做爰 | 九九九亚洲 | 亚洲二区视频 | 吃奶呻吟打开双腿做受动态图 | 欧美激情综合五月色丁香 | 美女高潮网站 | 天天射天天干天天插 | 成年人视频在线看 | 精品人伦一区二区三区蜜桃视频 | 人妻va精品va欧美va | 最新久久精品 | 中国丰满少妇人妻xxx性董鑫洁 | 日韩国产一区二区 | 日韩精品三级 | 波多野结衣视频免费 | 又黄又爽又色成人免费视频体验区 | 丝袜足脚交91精品 | 国产美女免费看 | 国产精品福利久久久 | 国产成人精品a视频一区 | 动漫美女靠逼 | 久久免费视频一区二区 | 久操新在线 | 欧美性猛交久久久乱大交小说 | 人妻尝试又大又粗久久 | 日本两性视频 | 国产精品麻豆入口29 | 无码va在线观看 | 久久精品aⅴ无码中文字字幕蜜桃 | 国产精品一区三区 | 亚洲人成色4444在线观看 | 亚洲精品久久久久中文第一暮 | 丰满婷婷久久香蕉亚洲新区 | 国产免费毛卡片 | 2020久久超碰国产精品最新 | 亚洲欧美日韩综合一区二区 | 日本天天黄网站 | 四虎在线永久免费观看 | 18成禁人视频免费 | 91喷水视频 | 成年人看的羞羞网站 | 国产精品一线天粉嫩av | 久久精品91视频 | 91午夜免费视频 | 欧美粗大猛烈老熟妇 | 日韩人妻ol丝袜av一二区 | 99热久久这里只有精品 | 亚洲精品一卡二卡 | 久久香蕉国产精品麻豆粉嫩av | 久久综合狠狠综合久久综合88 | 国产图区 | 熟妇五十路六十路息与子 | 亚洲欧美高清 | 国产精品久久久 | 粉嫩小箩莉奶水四溅在线观看 | 慈禧一级淫片91 | 香蕉免费毛片视频 | 青青青草视频 | 日韩第一页在线 | 国产一级在线 | 国产午夜精品一区二区三区在线观看 | www啪啪| 少妇口述公做爰全过程目录 | 国产97免费视频 | 日p免费视频 | 人与动物黄色大片 | 天堂√在线中文最新版8 | 老外和中国女人毛片免费视频 | 手机看片久久久 | 激情伦成人综合小说 | 在线观看免费福利 | 欧美jizzhd精品欧美巨大 | 一级免费黄色大片 | 欧美一区二区三区成人 | 99爱精品视频在线观看免费 | 毛片在线网址 | 亚州av一区| 消息称老熟妇乱视频一区二区 | 人人澡人人爽 | 日本高清视频网站 | 正在播放东北夫妻内射 | 国产成人a亚洲精v品无码 | 国产精品伦| 在线观看中文字幕2021 | 国产va免费精品观看 | 免费无码av片在线观看中文 | 51精产品一区一区三区 | 亚洲精品一 | 免费国精产品—品二品 | 亚洲男人第一av网站 | 久久婷婷国产综合国色天香 | 古代中国春交性视频xxx | 久久一本人碰碰人碰 | 成年在线观看免费视频 | 国内毛片毛片毛片毛片 | 国产精品综合网 | xnxnxnxnxn18美女| 亚洲第一区国产精品 | 久草资源在线 | 国产视频一区二区在线播放 | 亚洲一区二区日本 | 爱情岛论坛成人永久网站在线观看 | 亚洲一区二区三区在线观看视频 | 日本一区二区三区免费视频 | 老头糟蹋新婚少妇系列小说 | 一区二区三区网站 | 男人的天堂2019 | 1000部禁片18勿进又色又爽 | 欧洲熟妇色 欧美 | 亚洲自拍另类 | www五月天com | 2023年国产嫩草 | 国产人碰人摸人爱视频 | 67194熟妇在线观看线路1 | аⅴ资源中文在线天堂 | 狠狠色丁香久久婷婷综合五月 | 国产色午夜婷婷一区二区三区 | 国产午夜精品一区二区三区不卡 | 三女同志亚洲人狂欢 | 中文字幕日韩精品一区 | 亚洲色图五月天 | 三级三级三级三级 | 九九视频免费 | 色播视频在线 | 97人人澡人人爽人人模亚洲 | 亚洲黄色小视频在线观看 | 久久av高潮av无码av喷吹 | 日韩在线观看网址 | 国产66av | 五月天久久久久 | 日日摸夜夜添夜夜添特色大片 | 美女av一区二区 | 小12萝8禁在线喷水观看 | 欧美另类z0zx974 | 国产精品久久777777毛茸茸 | 欧美国产成人精品 | 亚洲一区在线免费 | 日本成人福利视频 | 色屋在线| 亚洲一卡二卡三卡 | 国产成人a在线观看网站站 又大又粗又爽免费视频a片 | 国产一级淫片a免费播放口欧美 | 看片免费黄在线观看入口 | 91高清在线| 日韩欧美亚洲国产 | 国产精品a久久 | 9.1成人看片| 文中字幕一区二区三区视频播放 | 欧美日韩在线视频一区二区 | 狠狠躁天天躁中文字幕无码 | 国产乱xxxxx978国语对白 | 黄色午夜视频 | 88av在线播放 | 国产精品无码mv在线观看 | 天天操夜夜爽 | 美女隐私免费网站 | 91久久国产露脸精品国产 | 国产一区二区三区久久久 | 欧美无砖区 | 人人做人人澡人人爽欧美 | 欧美色老头又长又大 | 亚洲麻豆一区 | 久久久aa | 色婷婷www| 亚洲中文字幕无码av | 欧美日韩精品一区二区三区在线 | 99在线 | 亚洲 | 欧美少妇毛茸茸 | 正在播放adn156松下纱荣子 | 亚洲成熟丰满熟妇高潮xxxxx | 黑人极品videos精品欧美裸 | 欧美一区二区三区大片 | 精品一二区 | 91久久久精品国产一区二区蜜臀 | 久久国产加勒比精品无码 | 狠狠久久亚洲欧美专区 | 国产黑色丝袜呻吟在线91 | 亚洲欧美日本一区 | 欧美激烈精交gif动态图 | 涩涩网站入口 | 美美女高清毛片视频免费观看 | 亚洲一区免费在线 | 无码一区二区三区 | 免费情侣作爱视频 | 中文字幕欧美视频 | 国产精品永久免费观看 | 国内自拍xxxx18| 中文字幕日韩精品在线观看 | 欧美 亚洲 一区 | 日韩免费精品 | 91激情视频在线观看 | 精品一区二区ww | 亚洲videos| 久久久中文 | 久久网页| 久久精品国产一区二区三区 | 81国产精品久久久久久久久久 | 亚洲欧美自拍偷拍视频 | 四虎成人永久免费视频 | 日本伊人久久 | 美女啪网站 | 久久er99热精品一区二区 | www.国产91| 国产精品高潮呻吟久久久 | 色婷婷中文 | 精品久久久久成人码免费动漫 | 欧美成人免费一级 | 日批免费观看视频 | 久久综合国产伦精品免费 | 免费 成 人 黄 色 网 | 亚洲人午夜色婷婷 | 欧美国产不卡 | 一级片网址| 五月花成人网 | 国产精品一二三四五 | 亚洲最新网址 | 色香色香欲天天天影视综合网 | 欧美色图11p | 久久精品在| 免费99精品国产自在在线 | 强开乳罩摸双乳吃奶羞羞www | 色婷av | 精品久久久久久久久久岛国gif | 日韩在线一级 | 亚洲精品久久久久久久久 | 国产精品久久久久久久久久98 | 青娱乐99| 91国偷自产一区二区三区蜜臀 | 少妇高潮太爽了中文字幕 | 亚洲精品久久国产高清 | 狠狠ri | 强乱中文字幕 | 毛片首页| 亚洲成色在线综合网站 | 97久久精品国产一区二区三区 | 天堂a视频 | 天天躁日日躁狠狠躁喷水软件 | 波多野结av衣东京热无码专区 | 男人j进入女人j内部免费网站 | 香港三日本三级少妇三99 | 午夜精品久久久久久久久久蜜桃 | 日韩精品欧美在线 | 午夜精品久久久久久久91蜜桃 | 99爱在线精品免费观看 | 亚洲三级影视 | 少妇高潮大叫好爽 | 久久久久久免费看 | 亚洲永久精品一区 | 久久男人av资源网站无码 | 免费成人用春色 | 日韩经典在线观看 | 免费欧美一级片 | 西西人体大胆4444www | 色视频在线观看视频 | 国产三级精品一区二区三区视频 | 日韩av一二三区 | 精品伊人久久久 | 国产精品99久久久久宅男软件功能 | 五月丁香六月综合缴情在线 | 亚洲日韩一页精品发布 | 国产女无套免费网站 | 色翁荡息又大又硬又粗又爽电影 | 国产又粗又猛又爽又黄 | 欧美 日韩 一区二区三区 | 免费福利av | 狠狠躁夜夜躁人蜜臀av小说 | 永久免费精品精品永久-夜色 | 先锋影音人妻啪啪va资源网站 | 欧洲一区二区在线观看 | 中文字幕免费在线看线人动作大片 | 亚洲一卡二卡在线观看 | 黄色片视频免费观看 | 久久免费偷拍视频 | 色窝| 亚洲欧美日韩国产手机在线 | 大地资源在线观看官网第三页 | 色噜噜狠狠狠综合曰曰曰 | 色欧美片视频在线观看 | 91一区视频 | 麻豆国产一区二区三区四区 | 欧美顶级metart裸体全部自慰 | 夜夜躁狠狠躁日日躁202小说 | 青娱乐自拍视频 | 极品白嫩丰满美女无套 | 久久综合精品国产丝袜长腿 | 日韩在线观看视频一区二区三区 | 久久96国产精品久久久 | 国产伦子伦视频在线观看 | av字幕在线 | 国产又粗又深又猛又爽又在线观看 | 日韩香蕉网 | 亚洲の无码国产の无码影院 | 中文字幕亚洲日本 | 又大又黄又爽视频一区二区 | 色8久久| 欧美在线网址 | 69xxxx在线观看 | 国产不卡视频在线 | 日韩欧美精品国产 | 天天爽 | 超碰97自拍 | 国产99久久精品一区二区永久免费 | 欧美aa级| 丰腴饱满的极品熟妇 | 午夜激情视频免费观看 | 成人拍拍拍 | 奶大臀圆magnet少妇 | 午夜成人免费影院 | 久久九九精品国产综合喷水 | 少妇做爰免费视频网站色黄 | 在线观看av免费 | 中文字幕爱爱 | 国产精品区一区二区三在线播放 | 亚洲无人区一区二区三区 | 韩国av片永久免费 | 在线精品福利 | 无套内谢孕妇毛片免费看看 | 一级理论片| 蜜桃堂女性向av片在线观看 | 久久久免费网站 | 国产成人一区二区三区视频 | 一级黄色裸体片 | 色老板精品视频在线观看 | 亚洲天堂第一区 | 亚洲欧美日韩成人一区 | 天堂中文在线播放 | 国产精品久久久久久久一区二区 | 亚洲午夜性猛春交xxxx | 熟人妇女无乱码中文字幕 | 亚洲精品一区二区三区丝袜 | 午夜黄色剧场 | 亚洲国产精品成人久久蜜臀 | 免费无码又爽又刺激网站 | 亚洲性精品 | 攵女h文1v1| 日本少妇一区二区 | 亚洲www啪成人一区二区麻豆 | 91九色网址 | 狠狠色噜噜狠狠狠888米奇视频 | 日韩欧美中文字幕在线视频 | 手机av在线免费观看 | 色久综合网 | 免费视频网站在线观看入口 | 柳岩高潮三级a观看 | 中文字幕一路线二路线三路线 | 久久久免费视频观看 | 乱亲女秽乱长久久久 | 就去色综合 | 久久五 | 欧美国产精品日韩在线 | 欧洲午夜精品 | 极品精品 | 外国特级免费片 | 久久99精品国产.久久久久 | 久久久久久艹 | 中文在线中文资源不卡无 | 一区二区国产精品视频 | xxxxx亚洲| yw尤物av无码国产在线观看 | 国产欧美一区二区三区免费 | 日日鲁鲁鲁夜夜爽爽狠狠视频97 | 国产无套中出学生姝 | 超碰在线94 | 美女搡bbb又爽又猛又黄www | 欧美r级在线 | 第一章豪妇荡乳黄淑珍 | 播五月婷婷 | 免费激情| 日本黄页网站免费大全 | 奇米影视四色777 | 女人抽搐喷水高潮国产精品 | 国产精品久久久久9999 | 三级做爰高清视频 | 国产偷v国产偷v亚洲高清 | 国产精品内射视频免费 | 久草成人在线视频 | 欧美第一夜 | 欧美精品1区 | 先锋资源av网 | 午夜在线免费观看视频 | 午夜性刺激免费视频 | 国产无遮挡无码视频免费软件 | 性史性高校dvd毛片 性视频黄色 | 国产无套精品 | 性一爱一性一乱 | 久久久国产精品免费 | 可以看三级的网站 | 108种啪姿势大全动态图 | 草逼免费视频 | 无码av岛国片在线播放 | 日韩午夜伦 | 久久黄色片网站 | 亚洲男人在线 | 网站毛片 | 最新国产精品自拍 | 国产乱码精品一区二区三区亚洲人 | 成人午夜视频免费 | 国模无码大尺度一区二区三区 | 国产哺乳奶水91在线播放 | 国产精品久久久久久无毒偷食禁果 | 无码性午夜视频在线观看 | 欧美色炮| 亚洲欧洲成人av每日更新 | 国产伦精品一区二区三区无广告 | 中文午夜人妻无码看片 | 黄色网战大全 | 精品免费久久久 | 久久av影视| 亚洲日本三级 | 黑人插少妇 | 91九色中文 | 午夜精品一区二区三区在线 | 爽天天天天天天天 | 国产人妻精品无码av在线 | 顶级少妇做爰视频在线观看 | 国产视频自拍一区 | 欧美 唯美 清纯 偷拍 | 国产人与zoxxxx另类一一 | 久久久精品波多野结衣av | 欧美精品99久久久久久人 | 午夜免费男女aaaa片 | 日韩黄网 | 国产精品水嫩水嫩 | 免费亚洲视频 | 国产做受入口竹菊 | 国外亚洲成av人片在线观看 | 国产精品偷伦费观看一次 | 十八岁以下禁止观看黄下载链接 | 97超碰自拍 | 国产精品青草综合久久久久99 | 国产又爽又黄又无遮挡的激情视频 | 中文字幕乱码一区av久久不卡 | 天天躁夜夜踩很很踩2022 | 五月天精品视频 | 国产亚洲无线码一区二区 | 亚洲一区二区国产 | 国产精品av久久久久久久久久 | 色翁荡熄又大又硬又粗又视频 | 男女啪啪免费 | www.精品在线 | 综合久久综合久久 | 亚洲黄视频 | 日本一区二区高清视频 | 男人进入女人下部视频 | 国产欧美日韩一区二区三区在线 | 无限看片在线版免费视频大全 | jizzyou中国少妇农村 | 久久综合伊人77777麻豆最新章节 | 色综合久久久无码中文字幕 | 国产成人高清视频 | 4399理论片午午伦夜理片 | 国产一区二区三区精品视频 | 色欧美片视频在线观看 | 精品少妇一区二区三区免费观 | 成人精品毛片国产亚洲av十九禁 | 欧美激情a∨在线视频播放 少妇人妻无码专区视频 | 国产精品观看 | 久久人人爽人人爽人人片亞洲 | 妞干网这里只有精品 | 欧美丰满老熟妇aaaa片 | 国产主播一区二区 | 亚洲一区久久 | 中文字幕色偷偷人妻久久 | 亚洲欧美综合精品久久成人 | 国产精品破处 | 欧美日韩国产免费一区二区三区 | 我和亲妺妺乱的性视频 | 国产熟妇高潮呻吟喷水 | 一区二区在线 | 欧洲 | 在线观看成人小视频 | 免费国产在线精品一区二区三区 | 日本免费三片在线播放 | 色婷婷亚洲六月婷婷中文字幕 | 久草中文在线视频 | 亚洲精品乱码久久 | 国产女王调脚奴免费视频 | 日本免费一区二区三区最新vr | youjizz中国丰满少妇 | 久久久久人妻精品一区 | 本田岬高潮一区二区三区 | 18视频在线观看男男 | 玖玖综合网 | 亚洲人一区 | 欧美伊人久久大香线蕉综合 | 精品国产av无码一区二区三区 | 精品无人国产偷自产在线 | 奇米影视四色7777 | 国产999视频 | 爱情岛论坛线路一区二区 | 中文字幕人成乱码熟女免费 | 那个网站可以看毛片 | 国产成人无码综合亚洲日韩 | 这里只有精品在线观看 | 一级不卡毛片 | 一区二区三区在线视频免费观看 | 精品久久久久久无码中文字幕 | 内射国产内射夫妻免费频道 | 最新中文字幕免费视频 | 97久久人人 | 99热最新 | 欧美日韩人成综合在线播放 | 久久超碰av | a级高清免费毛片av在线 | 成人一区av偷拍 | 91蝌蚪少妇偷拍 | 国产精品人妻一区二区高 | 国产精品岛国久久久久 | 日韩av中文字幕在线播放 | 欧美黄色a级大片 | 一本久道高清无码视频 | 亚洲成人播放 | 熟女少妇a性色生活片毛片 熟人妇女无乱码中文字幕 熟透的岳跟岳弄了69视频 | 亚洲另类欧美综合久久图片区 | 爱爱免费网址 | 在线观看黄色毛片 | 天天色天天爱 | 国产福利在线永久视频 | 亚洲一区精品视频在线观看 |