TS学习笔记
一、类型注解
eg:
function greeter(person: string) {
return `Hello ${person}`
}
const user = 'chenhe'
console.log(greeter(user)) // Hello chenhe
二、定义接口
eg:
interface Person {
firstName: string
lastName: string
}
function greeter(person: Person) {
return `Hello ${person.firstName} ${person.lastName}`
}
let user = {
firstName: 'chenhe',
lastName: 'zhengkai'
}
console.log(greeter(user)) // Hello chenhe zhengkai
ES6版:
class User {
firstName: string
lastName: string
constructor(firstName: string, lastName: string) {
this.firstName = firstName
this.lastName = lastName
}
}
interface Person {
firstName: string
lastName: string
}
function greeter(person: Person) {
return `Hello ${person.firstName} ${person.lastName}`
}
let user = new User('chenhe', 'zhengkai')
console.log(greeter(user)) // Hello chenhe zhengkai
三、基础类型
Boolean、Number、String、Array、元组、枚举、Any、Void、Null、Undefined、Object、类型断言
1. Boolean
let isDone: boolean = true
let isDone: boolean = false
2. Number
let decLiteral: number = 20 // 十进制
let binaryLiteral: number = 0b10100 // 二进制
let octalLiteral: number = 0o24 // 八进制
let hexLiteral: number = 0x14 // 十六进制
3. String
let name: string = 'chenhe'
let name: string = `chenhe`
4. Array
let list: number[] = [1,2,3]
let list: Array<number> = [1,2,3]
5. 元组
let x: [string, number]
x = ['hello', 20]
6. 枚举
enum Color {
Red = 1,
Green,
Blue
}
let colorName: string = Color[2]
console.log(colorName) // Green
7. Any
let notSure: any = 4 // 不作类型检查
notSure = 'Hello'
notSure = false
let list: any[] = [1, true, 'free']
8. void
function warnUser(): void {
conslole.log(`This is a warning message!`)
}
9. null
let n: null = null
10. undefined
let n: undefined = undefined
11. never
function error(message: string): never {
throw new Error(message)
}
function fail() {
return error(`something failed`)
}
function infiniteLoop(): never {
while(true) {
...
}
}
12. Object
declare function create(o: object | null): void {
// declare --- 声明
}
create(o: {prop: 0}) // OK
create(o: null) // OK
create(o: 42) // NO
create(o: 'string') // NO
create(o: false) // No
13. 类型断言
let someValue: any = `this is a string`
let strLength: number = (someValue as string).length
四、变量声明
后续待更......