成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

ts學(xué)習(xí)筆記

Jioby / 809人閱讀

摘要:如何學(xué)習(xí)一門語言是什么與的關(guān)系以面向?qū)ο蟮乃季S編程代碼格式的流轉(zhuǎn)我們?cè)谧鍪裁磸?qiáng)數(shù)據(jù)操作我們做的是由組件集組裝起來的的質(zhì)量取決于組件的質(zhì)量什么是組件的質(zhì)量怎樣寫出質(zhì)量好的組件有什么是如何使得我們能產(chǎn)出高質(zhì)量組件類型系統(tǒng)之原子類型類型系統(tǒng)之組

如何學(xué)習(xí)一門語言
是什么? 與es的關(guān)系?


以面向?qū)ο蟮乃季S編程?

代碼格式的流轉(zhuǎn)?

我們?cè)谧鍪裁?


// C-D 強(qiáng)數(shù)據(jù)操作
import { observable, action } from "mobx"

export default class StoreBase {
  service: any

  @observable state = ""
  @observable list = []
  @observable loading = false
  @observable totalCount = 0
  @observable counter = 0
  @observable pageSize = 10
  @observable pageIndex = 1
  @observable submiting = false
  @observable initialFormValue = {}

  constructor(service) {
    this.service = service
  }

  @action changeSize(pageSize) {
    this.pageSize = pageSize
  }
  @action async getPageList(options: { pageIndex?: number, pageSize?: number }) {
    options.pageIndex = options.pageIndex || this.pageIndex
    options.pageSize = options.pageSize || this.pageSize
    this.pageIndex = options.pageIndex
    this.pageSize = options.pageSize
    this.loading = true
    const result = await this.service.list(options)
    this.loading = false
    this.list = result.data
    this.totalCount = result.totalCount
  }
  @action async add(body) {
    this.submiting = true
    try {
      const result = await this.service.add(body)
      if (result.statusCode && result.statusCode !== 200) {
        throw new Error(result.message)
      }
    } catch (error) {
      throw error
    } finally {
      this.submiting = false
    }
  }
  @action async edit(id, body) {
    this.submiting = true
    try {
      const result = await this.service.update(id, body)
      if (result.statusCode && result.statusCode !== 200) {
        throw new Error(result.message)
      }
    } catch (error) {
      throw error
    } finally {
      this.submiting = false
    }
  }

  @action async remove(id) {
    try {
      await this.service.delete(id)
      this.getPageList({ pageIndex: this.pageIndex })
    } catch (error) {
      throw error
    }
  }

  @action initializeForm(form) {
    this.initialFormValue = form
  }
}



我們做的web application是由組件集組裝起來的, application的質(zhì)量取決于 組件的質(zhì)量
什么是組件的質(zhì)量? 怎樣寫出質(zhì)量好的組件?

ts 有什么? 是如何使得我們能產(chǎn)出高質(zhì)量組件
類型系統(tǒng) 之 原子類型

// boolean
let judge: boolean = true;

// string
let girl: string = `${family.join("======")}`;

// any
const think: any = {}
think = [];
think = "";
think = 1037;

// void
function select(): void { 
    return null;
}

// never
function logger(message: string): never { 
    throw new Error(message);
}
類型系統(tǒng) 之 組合類型

// 數(shù)組類型
let family: string[] = ["epuisite", "love", "detail"];
let team: Array = [1, 3, 7];
interface teamArray { 
    [index: number]: any
}
let t: teamArray = [1, 2, 3, {1: 3}];
// 元組
let structure: [string, Array];
structure = ["why", ["atomic element", "what"]];
structure[2] = "how";
structure[3] = ["when"];
// function類型
interface Doing { 
    (type: number, thing: string, when?: string|number): any[]
}

let mydoing: Doing;
function f(type: number = 2, thing?: string, when?: string|number, ...items: any[]) { 
    return type;
}

function sf(message: number): number;
function sf(message: string): string;
function sf(message: number | string): number | string { 
    if (message as number) {
        return 1;
    } else { 
        return "123";
    }
}
// 枚舉類型  數(shù)字類型的值
const Color = {Red, Green, Blue};
enum Direction{  
    Up=1,  
    Down,  
    Left,  
    Right  
}  
// 自定義類型
// 對(duì)象類型 - 接口
interface Mother { 
    readonly id: number,
    detail: any[],
    learning: string,
    love: boolean,
    housework?: boolean,
    [proName: string]: any
}
let me: Mother = {
    id: new Date().getTime(),
    detail: ["water", 137, "cloud", "grass", "nose"],
    learning: "a wider world",
    love: true,
    doing() { 
        return 137;
    }
};


工具 是什么? 怎么用? 為什么用?

泛型

function createArray(length: number, value: T): Array { 
    let result: T[] = [];
    for (let i = 0; i < length; i++) { 
        result[i] = value;
    }
    return result;
}

function swap(tuple: [T, U]): [U, T] { 
    return [tuple[1], tuple[0]];
}


interface lengthwish { 
    length: number
}

function swap2(tuple: [T, U]): [U, T] { 
    return [tuple[1], tuple[0]];
}

interface createArrayFunc { 
    (length: number, value: T): Array;
}

let myCreateArray: createArrayFunc;
myCreateArray = function (length: number, value: T): Array[T] { 
    let result: T[] = [];
    for (let i = 0; i < length; i++) { 
        result[i] = value;
    }

    return result;
}

// 聯(lián)合類型[共有的屬性和方法 + 類型推論]
let cooperation: string | number | boolean | null | undefined;
cooperation = 1;
cooperation = null;



// 類型斷言
function determine(config: number[] | string ): boolean {
    if ((config).length || (config).length) {
        return true;
    } else { 
        return false
    }
 }

type Name = string;
type DoFn = () => string;
type cof = Name | Dofn;
function o(message: cof): Name { 
    return "";
} 

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/94694.html

相關(guān)文章

  • angular2JS學(xué)習(xí)筆記

    天才第一步,配置環(huán)境node,nvm,npm,webpack等。 1.創(chuàng)建一個(gè)文件夾angular2-app.內(nèi)置文件有package.json , tsconfig.json , typings.json. //typings.json { ambientDependencies: { es6-shim: github:DefinitelyTyped/DefinitelyTyped/...

    figofuture 評(píng)論0 收藏0
  • Angular4學(xué)習(xí)筆記之DOM屬性綁定

    摘要:如果沒有,請(qǐng)查看學(xué)習(xí)筆記之安裝和使用教程事件綁定準(zhǔn)備工作了解目的在模版的界面上面增加一個(gè)按鈕,然后通過小括號(hào)綁定一個(gè)事件。 簡(jiǎn)介 使用插值表達(dá)式將一個(gè)表達(dá)式的值顯示在模版上 {{productTitle}} 使用方括號(hào)將HTML標(biāo)簽的一個(gè)屬性值綁定到一個(gè)表達(dá)式上 使用小括號(hào)將組件控制器的一個(gè)方法綁定到模版上面的一個(gè)事件的處理器上 按鈕綁定事件 注意 在開始下面的例子之前,請(qǐng)先確認(rèn)已...

    Genng 評(píng)論0 收藏0
  • angularV4+學(xué)習(xí)筆記

    摘要:注解的元數(shù)據(jù)選擇器頁面渲染時(shí),組件匹配的選擇器使用方式采用標(biāo)簽的方式。當(dāng)然必要的,在需要用到的的模塊中引入引入的指令,放在聲明里面引入的模塊引導(dǎo)應(yīng)用的根組件關(guān)于的元數(shù)據(jù)還未完全,所以后面會(huì)繼續(xù)完善。 angular學(xué)習(xí)筆記之組件篇 showImg(https://i.imgur.com/NQG0KG1.png); 1注解 1.1組件注解 @Component注解,對(duì)組件進(jìn)行配置。 1....

    galaxy_robot 評(píng)論0 收藏0
  • angularV4+學(xué)習(xí)筆記

    摘要:注解的元數(shù)據(jù)選擇器頁面渲染時(shí),組件匹配的選擇器使用方式采用標(biāo)簽的方式。當(dāng)然必要的,在需要用到的的模塊中引入引入的指令,放在聲明里面引入的模塊引導(dǎo)應(yīng)用的根組件關(guān)于的元數(shù)據(jù)還未完全,所以后面會(huì)繼續(xù)完善。 angular學(xué)習(xí)筆記之組件篇 showImg(https://i.imgur.com/NQG0KG1.png); 1注解 1.1組件注解 @Component注解,對(duì)組件進(jìn)行配置。 1....

    LoftySoul 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<