xtzero.me
整一波ts
技术学习
2021-02-25

安装

npm install -g typescript

运行

tsc index.ts

基础类型

布尔值、数字

let isDone: boolean = false let dec: number = 6 let hex: number = 0xf00d let bin: number = 0b1010 let oct: number = 0o744 console.log(isDone, dec, hex, bin, oct)

字符串 模板字符串

let onename: string = "bob" onename = "smith" let name2: string = `Gene` let age: number = 37 let sentense: string = `my name is ${name2}. I'll be ${age + 1} years old next month` console.log(onename, name2, sentense)

数组

let list: number[] = [1, 2, 3] let list2: Array<number> = [1, 2, 3] console.log(list, list2)

元组

let x: [string, number] x = ['hello', 10]

枚举

enum Color {Red, Green, Blue} let c: Color = Color.Green let colorName: string = Color[2] console.log(c, colorName)

any

let notSure: any = 4 // console.log(notSure.ifItExist(), notSure.toFixed()) let prettySure: Object = 4 // console.log(prettySure.toFixed()) let list1: any[] = [1, true, "free"] console.log(list1) list1[1] = 100 console.log(list1)

void

function warnUser(): void {
    console.log("warning!")
}

let unusable: void = undefined
console.log(warnUser(), unusable)

undefined 和 null

没啥用
undefined和null是任何类型的子类型

let u: undefined = undefined
let n: null = null
console.log(u, n)

never

never 表示永不存在的值的类型

never 也是任何类型的子类型

function error(message: string): never {
    throw new Error(message)
}
console.log(error("error!"))

object

表示非原始类型,除了number string boolean symbol null undefined之外的类型

declare function create(o: object | null): void;

create({ prop: 0})
create(null)

断言

let someValue: any = "string"
let strLen: number = (<string>someValue).length
console.log(someValue, strLen)

let someValue2: any = "string"
let strLen2: number = (someValue2 as string).length
console.log(someValue2, strLen2)

变量声明

let是块作用域

多用let少用var

同一个作用域里一个变量只能let一次

const作用域跟let一样,声明完了不能再改

解构

let input: [number, number] = [1, 2]
let [first, second] = input
console.log(first, second)

function f([first, second]: [number, number]) {
    console.log(first, second)
}
f(input)

let [one, ...rest] = [1, 2, 3, 4]
console.log(one, rest)
// 1 [2, 3, 4]

太乱了不研究了用上了再说。

接口

interface SquareConfig {
    color?: string,
    width?: number
}

function createSquare(
    config: SquareConfig
): {color: string; area: number} {
    let newSquare = {color: "white", area: 100}
    if (config.color) {
        newSquare.color = config.color
    }
    if (config.width) {
        newSquare.area = config.width * config.width
    }
    return newSquare
}

let mysquire = createSquare({color: "black"})
console.log(mysquire)

函数类型的接口

interface SearchFunc {
    (
        source: string,
        subString: string
    ): boolean
}

let mySearch: SearchFunc = function(
    source: string,
    subStirng: string
) {
    let result = source.search(subStirng)
    return result > -1
}

console.log(mySearch("abc", 'a'))

可索引的类型

interface StringArray {
    [index: number]: string
}

let myarray: StringArray = ["bob", "fred"]

let myStr: string = myarray[0]

console.log(myarray, myStr)
xtzero.me
从前从前,有个人爱你很久
友情链接
这里是友情链接
虽然我很菜,但是也希望可以和更多人交换友链。
作品站
这里是我的 作品站
虽然菜,但还没放弃创造。
推广内容
或许你需要买便宜的服务器
你有优惠我有返利,何乐而不为呢。

立即查看 >>
也想使用 Hikari 2 ?
Hikari 2 已经被用来建站啦!点击这里来查看都有哪些案例以及我们的联系方式吧。