TS训练场
https://www.typescriptlang.org/play
type Id = string | number //表示Id可以是字符串或者是数字
const id1: Id = '123' // 冒号后面表示类型
const id2: Id = 123
普通类型只能是用 | 不能用 &
type User = {
readonly code : 'x' //表示只读,不能修改
ID : number | string; //定义给分号 逗号 空格都行
name : string,
age? : number //属性给问好表示是可选的属性,可给可不给
}
const u : User = {
code : 'x',
ID : 1, //记得给逗号
name : 'kasan'
}
const U1 : User = {
code : 'x',
ID : 2,
name : 'kasan1',
age : 16
};
U1.code = 'XXX'
type Dir = '东'| '南' | '西' | '北'
const d:Dir = '西'
const d1:Dir = 'XXX' //报错
type test = {
t : 'x1',
speacialForA : string
}
type test1 = {
t : 'x1',
speacialForB : string
}
type C = test | test1 //一般有相同属性的可以用或
const XXX:C = {
t : 'x1',
speacialForA:'xxx'
}
type test = {
t : 'x1',
speacialForA : string
}
type test1 = {
L : 'lll',
speacialForB : string
}
type C = test & test1 //属性不同时用并 &
const XXX:C = {
t : 'x1',
L : 'lll',
speacialForA:'xxx',
speacialForB:'ccc'
}
interface X { //type可以表示数字 字符串 对象等等 而interface 只表示对象
readonly id : number | string
name : string
age? : number
}
interface XWithDog extends X{
dog : string
}
const u1 : XWithDog = {
name : 'kasan',
age : 16,
id: 1,
dog:'Doooooog',
}
type pet = string
interface XWithPet<T> extends X{ //传参使用方法
pet : T
}
const P1:XWithPet<"cat"> = {
id:1,name:'XXXX',age : 11,
pet:'cat'
};
console.log(P1.pet)
//