学习 typescript 基础语法

2019-12-13  本文已影响0人  阿畅_

typescript

编译

TypeScript 的原始数据类型

任意值 any 可以赋值为任意类型

当给一个变量赋初始值的时候,它会根据你的值判断你的类型

联合类型

var b:string | number = 1

对象类型

interface Istate {
name: string
}

如果其中一个类型 可有可无 ?

interface Istate {
name: string, // 也可以 string | number
age?: number
}

属性个数不确定

interface Istate {
name: string,
[propName: string]: any
}

只读属性

interface Istate2 {
name: string,
readonly age: number
}

var obj2:Istate2 = { name: '11', age: 1 }
obj2 = { name: '1243', age: 23 }
obj2.age = 1 // 错误

数组

interface IArr {
[index: number]: Istate2
}
var interAry:IArr = [{ name: 'hhh', age: 1 }]

var arrType2: Array<Istate2> = [{ name: 'hhh', age: 1 }]
var arrType3:Istate2 [] = [{ name: 'hhh', age: 1 }]

函数类型

function fun1(name: string, age:number) {
return age
}

fun1('123',123)
const ages:number = fun1('dsf', 123)

表达式的方式

var funa = function(name:string, age:number = 20):number { // number 返回类型
return age
}

var funa3:funType3 = function(name: string, age: number):number {
return age
}

类型断言

ts 中声明文件 ,引入第三方包

js 类型别名 type

type str = string
var str5:str = "1"

type muchType = string | number | boolean
var str6 = false

interface muchType3 {
name: string,
age: number
}

type muchType4 = muchType2 | muchType3

function getSelf(self: myStr) {

}

getSelf('我')

枚举类型

nums[1] == 'two' // true
mums.two

类 class

class Person {
private name = 'hello'
age = 20
protected sex = '女'
speak() {
console.log('我是' + this.name + '我多大了?' + this.age)
}
}

var p = new Person()
p.speak()

console.log(p.name) // ❌
console.log(p.age)
console.log(p.sex) // ❌

class Child extends Person {

callPerent() {
console.log(super.age)
console.log(super.sex)
}
}

泛型

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

resArray(3, '1') // 如果不定义类型,就会自动类型推导
resArray<String>(1, '1') // 可以传递类型
var arrVal: string [] = resArray(2, '1')

interface FXFun {
<T>(name:string, value: T): Array<T>
}

var func5: FXFun

func5 = function<T>(name: string, value: T): T [] {
return []
}

上一篇下一篇

猜你喜欢

热点阅读