TypeScript学习笔记(二)变量声明

184 阅读1分钟

解构指定数据类型

在es6中解构的方式如下:

const o  = {a:1000 , b:'string'}
const {a,b} = o
/*
或者是
const {a:valuea,b:valueb} = o
*/

在上面的代码中冒号之后不是给数据指定数据类型,如果需要指定类型需要这样来做,

...
const {a,b}:{a:number,b:string} = o // ok
/*
const {a:valueone,b:valuetwo}:{a:number,b:string} = o // ok
*/

默认值

function keepWholeObject(wholeObject: { a: string, b?: number }) {
    let { a, b = 10001 } = wholeObject;
}

函数声明

解构也能用于函数声明。 看以下简单的情况:

type C = { a: string, b?:number }
function f ({a,b}:C):void {
    ...
}

展开

对象展开还有其它一些意想不到的限制。 首先,它仅包含对象 自身的可枚举属性。 大体上是说当你展开一个对象实例时,你会丢失其方法:

class C {
  p = 12;
  m() {
  }
}
let c = new C();
let clone = { ...c };
clone.p; // ok
clone.m(); // error!