类型
js的七种类型 + 枚举() + any + void + never
enum类型的使用
enum Six {
// 不赋值的话默认从0开始复制,也可由单独复制
man, // man= 0
wonen // women = 1
}
const p1:Six = Six.man
const p2:Six = Six.wonen
console.log(p1) // 0
console.log(p2) // 1
·any包含了(js的七种类型 + enum + void )·
默认情况下null和undefined是所有类型的子类型。 就是说你可以把 null和undefined赋值给number类型的变量
接口 Interface
接口就是用代码描述一个对象必须有什么属性(包括方法)
只读属性
interface Human{
readonly name: string,
readonly age: number
}
可选属性
interface Human{
name?: string,
age?: number
}
interface 之外的属性
使用类型断言
interface Human{
name: string,
age: string
}
const fn= (human:Human) =>{
// xxx
return human
}
fn({name:'xx',age:'xx', six:'xxx'} as Human)
使用索引签名
interface Human{
name: string,
age: string,
[propName:string]:any
}
const fn= (human:Human) =>{
// xxx
return human
}
fn({name:'xx',age:'xx', six:'xxx'})
interface描述对象中的方法
interface Human{
name: string,
age: string,
say(str:string):void // 括号中是参数 冒号后面是 返回值的类型 函数中不加return 默认返回void
}
interface直接描述对象
interface Fn {
(Human):Human
}
const fn:Fn= (human:Human) =>{
// xxx
return human
}
接口继承
interface Human{
name: string,
age: string,
}
interface Animal extends Human {
type:string
}