继承 缺省 只读
interface NameItf {
name:string;
}
interface AgeItf {
age:number;
}
interface PersonItf extends NameItf,AgeItf{
height:number;
}
let p:PersonItf;
p={
name:'小红',
age:18,
height:160
}
同名
interface AItf {
age:number;
}
interface AItf {
name:string;
}
let p:AItf;
p={
age:18,
name:'小红'
}
缺省
interface ATf {
name:string;
age?:number;
}
let p:ATf;
p={
name:'小红'
}
只读
interface ATf {
readonly name:string;
}
let p:ATf;
p={
name:'小红'
}
联合交叉类型
let obj:{age:number;}&{name:string}|{age:string;}&{name:number}
obj={
age:1,
name:'小红'
}
obj={
age:'小红',
name:1
}
类型别名
type StrOrNum = string|number
let str:StrOrNum='1'
str=1
type ObjType = {a:number&2;b:string}
let objs={
a:2,
b:'11'
}
promise
interface DataItf{
a:number;
b:number;
}
interface ResItf{
code:number;
data: DataItf[];
msg:string;
}
let p:Promise<ResItf> = new Promise((resolve,reject)=>{
resolve({
code:0,
data:[{a:1,b:2},{a,3,b:23}],
msg:successs'
})
})
p.then(res=>{
if(res.code===0){
}
})
ts 函数
interface fnIt{
(n:string):number
}
const fn:fnIt=(n:string)=>{
return 1
}
fn('')
type fnTyp = (n:string)=>void
const fn2:fnTyp = (n:string)=>{}
interface FnIt{
(n:string):number
}
interface ObjTtf{
fn: FnIt
}
const obi:ObjItf={
fn:(str)=>{
renturn 1
}
}
obj.fn('')
const types: Record<string, string> = {
R: "tab1",
"888": "tab2",
};