TypeScript 学习1 类型

135 阅读1分钟

//也可以直接使用字面量进行类型声明
let a:10
// a = 20 // a的值不可以更改 不能将类型“20”分配给类型“10”。
// console.log(a)

let b:'hello' | boolean; //联合类型
b = true
b = 'hello'
// console.log(b)

//let d:any; //表示是任意类型,一个变量设置类型为any 后相当于关于了 TS的类型检测
let d //声明变量如果不指定类型,则ts会自动判断变量类型为any (隐式的any)
d = 10
d = 'b'
d = true
// console.log(d)

//d的类型是any, 它可以赋值给任意变量
b = d
// console.log(b,'b')


//unknown 表示未知类型的值 实际上就是一个类型安全的 any
//unknown 类型的变量,不能直接赋值给其他变量
let e:unknown
e = 999
e = 'qq'
// console.log(e)
let z:string
//d的类型是未知的, 它此时会报错 不能将类型“unknown”分配给类型“boolean | "hello"”。

//① 如果要 z的值赋给e 那么做个判断 当e的值等于字符串 才让他赋值
if(typeof e === 'string') {
    z = e
    // console.log(z,'z')
}

//②类型断言:它可以用来告诉解析器变量的实际类型
// z = e as string;
z = <string>e;
// console.log(z)