Kasan Blog

TS简易入门

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)

 //