原创 兩欄佈局、三欄佈局

兩欄佈局 float + bfc 利用浮動和浮動元素對塊級元素不可見(浮動元素會蓋住非浮動的塊級元素),然後觸發被覆蓋的塊級元素的 bfc,這樣可以是右邊藍色的部分不被左邊紅色部分覆蓋,而是剛好銜接。如果不觸發 bfc 可以設置右

原创 React Forwarding ref

const FancyButton = React.forwardRef((props, ref) => ( <button ref={ref} className="FancyButton"> {props.chil

原创 TS 中的模塊化

模塊語法 直接使用 Es6 的模塊化語句就可以了 導入 ts 文件時,不要加後綴名,因爲編譯後是 js 文件,沒有 .ts 編譯結果中的模塊化 可配置,直接配置 compolerOptions.module 就可配置編譯結果中使用

原创 TypeScript 基本類型檢查

如何進行類型檢查 時候用 : let name:string = '13' let nums: number[] = [1] // 每一項爲 number 的數組 let nums: Array<number> = [1]

原创 騰訊WXG微信事業羣面試總結

一面 一面是視頻面,現在想起都有點害怕。 一上來左邊六道題鋪滿,啥都沒說,開始刷題, 嚇人。。。給了我四十分鐘。不過看了會兒題,幸好還在自己的承受範圍之內,涉及的知識稍微有點難度的就只有這幾道,其他的也還好 洗牌算法 判斷迴文:

原创 html小知識點

1、設置編碼,常用的有utf-8、unicode, 必須設置,utf-8是萬國碼,什麼語言都能識別,否者亂碼 <meta charset="utf-8"> 2、lang和搜索引擎相關 <html lang="en"></html

原创 eslint 配置規則解釋

配置文件 eslint --init 會生成一個已經配置好的配置文件。 可以使用一個名爲 .eslintrc.json 作爲的一個單獨的配置文件。也可以在 package.json 中指定 eslintConfig 字段 {

原创 nodemon使用方法

nodemon 直接將結果存儲在內存中 nodemon 具體的文件名。如果什麼都不指明,使用 package.json 的 main 字段 rs。 重啓 nodemon.json。配置文件,可以放到當前工作目錄或者 home 目

原创 泛型

泛型 有時書寫函數的時候,會丟失一些類型信息,多個位置的類型應該保持一致或者有關聯的信息。 泛型是指,附屬於函數、類、接口、類型別名之上的類型 在函數中使用泛型 // 隨便取一個名字,一般用 T,表示類型 function tak

原创 接口

用於約束類、對象、函數的契約(標準) 契約的形式 API 文檔,弱標準 代碼約束,強標準 類型別名跟接口的區別是,接口可以用來約束類 接口約束對象 interface User { name: string age: nu

原创 TypeScript 概念

簡單概念 Ts 是一個可選的靜態的類型系統,js 一行一行的邊解析邊執行,Ts 增強了類型檢查和麪向對象。Ts 最終是通過 tsc 編譯成 js 然後取執行的,所以最終執行的是 js 代碼。 最普通的是使用 tsc 去編譯,對編譯

原创 類型兼容性

類型兼容性 如果 a = b b 如果能夠賦值給 a,那麼稱這兩個類型兼容。一個總的原則,鴨子辯型法(子結構辯型法): 目標類型需要某一些特徵,賦值的類型只要能滿足該特徵就可以 基本類型:完全匹配 對象類型:鴨子辯型法 int

原创 TS 中的類

屬性 使用屬性列表 class User { name: string age: number // 屬性訪問修飾符,默認是 public public gender: string private height: nu

原创 多泛型

多泛型 function mixinArray<T, K> (arr1: T[], arr2: K[]): (T | K)[] { let result: (T | K)[] = []; ... return result

原创 擴展類型-枚舉類型

擴展類型:類型別名、枚舉、接口、類。 字面量類型的問題 在類型約束位置,會產生重複代碼,可以使用類型別名解決該問題 邏輯含義和真實的值產生了混淆,會導致修改真實的值的時候,產生大量的修改 字面量類型不會進入到編譯結果,比如我們想