TS学习中

// 基本类型
var b:number = 456
var c:String = ‘456’
let bool:boolean = false
let n:null = null
let unF:undefined = undefined
let obj:Object = new String(‘hello world!’)

let sys:symbol = Symbol(‘test1’)
let obj ={
[sys]:‘my 666’
}
console.log(obj)

const sym = Symbol();
let obj = {
[sym]: “semlinker”,
};
console.log(obj[sym]); // semlinker

// array
let list:number[] = [1,2,3]
let list2:Array<number|string> = [123,‘456’] // Array泛型语法
console.log(list , list2)

// Enum类型
enum Direcion {
North,
South
}
let dir :Direcion = Direcion.North
let dir2 :Direcion = Direcion.South
console.log(dir , dir2)

//字符串枚举

enum Direcion2 {
NORTH = “NORTH”,
SOUTH = “SOUTH”,
EAST = “EAST”,
WEST = “WEST”,
}

//Any类型
let notSure:any = 666
notSure=‘fdsherh’
notSure = false

//unknown
let value : unknown
value = true; // OK
value = 42; // OK
value = “Hello World”; // OK
value = []; // OK
value = {}; // OK
value = Math.random; // OK
value = null; // OK
value = undefined; // OK
value = new TypeError(); // OK
value = Symbol(“type”); // OK

//试将类型为 unknown 的值赋值给其他类型的变量时会发生什么?
let value: unknown;
let value1: unknown = value; // OK
let value2: any = value; // OK

let value3: boolean = value; // Error
let value4: number = value; // Error
let value5: string = value; // Error
let value6: object = value; // Error
let value7: any[] = value; // Error
let value8: Function = value; // Error

// Tuple类型
// 数组中多个不同的值 , 可以使用元组
let arr1 : [string , boolean ]
arr1 = [‘sock’ , true]

//void类型 表示没有任何类型 .
// 当一个函数没有返回值时,通常见到其返回值类型时void

var obj = {
name:‘my name’
}
function green(name:Object):void{
console.log(name)
}
green(obj)

// 需要注意的是,声明一个 void 类型的变量没有什么作用,
// 因为在严格模式下,它的值只能为 undefined:
// let unusable:void = undefined

//object , Object {}

interface ObjectConstructor {
create(o:object | null):any
}
const proto = {}
Object.create(proto)
Object.create(null)

Object.create(undefined); // Error
Object.create(1337); // Error
Object.create(true); // Error
Object.create(“oops”); // Error

// Object 类型:它是所有 Object 类的实例的类型

// Object接口定义了Object.prototype原先对象上的属性

const obj = {
prop:‘sdfdf’
}
obj.prop = ‘smile’

// never类型 表示时那些永远不存在的值得类型
// never 类型是那些总是会抛出异常或根本就不会有
// 返回值的函数表达式或箭头函数表达式的返回值类型。

// TS断言
//类型断言
//你会比ts更了解某个值的详细信息 ,
//通常这会发生在你清楚的指定一个具体有比他现有类型更确切的类型

let someValue:any = ‘this is a string’
let strLength:number = (someValue).length

let someValue: any = “this is a string”;
let strLength: number = (someValue as string).length;

//非空断言 x! 将从 x 值域中排除 null 和 undefined

//忽略undefined 和null类型
function myFun(maybeString:string|undefined|null){
// const onlyString: string = maybeString //err
const ignoreUnderfinedNull:string = maybeString! //ok
}

//调用函数时忽略undefined 类型
type NumGenerator = ()=> number;
function myFun(numGenerator:NumGenerator | undefined){
// const num1 = numGenerator()
const num2 = numGenerator!()
console.log( 123132132 , numGenerator)
}

myFun(()=> 124555)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值