当前位置: 首页 > news >正文

网站建设怎样设置动态背景上百度首页

网站建设怎样设置动态背景,上百度首页,网站维护中是怎么回事,网站建设制作设计营销公司南宁TypeScript 的类型兼容性是基于结构子类型的。 结构类型是一种只使用其成员来描述类型的方式。 interface Named {name: string; }class Person {name: string; }let p: Named; p new Person();// 赋值成功,因为都是结构类型,只要Person 类型的包含 Nam…

TypeScript 的类型兼容性是基于结构子类型的。
结构类型是一种只使用其成员来描述类型的方式。

interface Named {name: string;
}class Person {name: string;
}let p: Named;
p = new Person();// 赋值成功,因为都是结构类型,只要Person 类型的包含 Named 的属性

关于可靠性的注意事项

  • TypeScript 的类型系统允许某些在编译阶段无法确认其安全性的操作。
    • 例如:上面的Named 接口 和 Person 类,应该属于不同的类型,但是在 TypeScript 上只要属性包含就是兼容的。

探究

interface Named {name: string;
}let x: Named;let y = {name: 'Alice', location: 'Seattle'};
x = y; // 可以赋值// 这里检车 `y` 是否能赋值给`x`,编译器检查`x`中的每个属性,看看是否能再`y`中找到所有对应的属性。找到了就是可以兼容,缺少属性就不能兼容console.log(x);function greet(n: Named) {console.log(n.name);
}greet(y);
// 检查属性也适用类型兼容性规则

比较两个函数

let x = (a: number) => 0;
let y = (b: number, s: number) => 0;// y = x; // ok
// x = y; // Error
/***  要查看x是否能赋值给y,首先看它们的参数列表。 x的每个参数必须能在y里找到对应类型的参数。 注意的是参数的名字相同与否无所谓,只看它们的类  * 型。 这里,x的每个参数在y中都能找到对应的参数,所以允许赋值。* 第二个赋值错误,因为y有个必需的第二个参数,但是x并没有,所以不允许赋值。*/

为什么 x 可以赋值给 y。就像 Array.forEach 一样

let items = [1, 2, 3];/** 完整参数列表 */
items.forEach((item, index, array) => {console.log(item);
});/**一个参数 */
items.forEach(item => console.log(item));

比较函数之间的返回值类型

let x = () => ({name: 'Alice'});
let y = () => ({name: 'Alice', location: 'Seattle'});x = y; // Ok
// y = x; // Error

类型系统强制源函数的返回值类型必须是目标函数返回值类型的子类型。

函数参数双向协变

当比较函数参数类型时,只有当源函数参数能够赋值给目标函数或者反过来时才能赋值成功。

enum EventType {Mouse,Keyboard,
}interface Event {timestamp: number;
}interface MouseEvent extends Event {x: number;y: number;
}interface KeyEvent extends Event {keyCode: number;
}function listenEvent(eventType: EventType, handler: (n: Event) => void) {/* ... */
}// 不可靠, 但有用
listenEvent(EventType.Mouse, (e: MouseEvent) => console.log(e.x + ',' + e.y));// 替代方案 - 类型断言 - 明确类型
listenEvent(EventType.Mouse, (e: Event) =>console.log((<MouseEvent>e).x + ',' + (<MouseEvent>e).y),
);
listenEvent(EventType.Mouse, <(e: Event) => void>(((e: MouseEvent) => console.log(e.x + ',' + e.y))
));// 报错,不兼容
// listenEvent(EventType.Mouse, (e: number) => console.log(e));

可选参数和剩余参数

比较函数兼容性的时候,可选参数与必须参数是可互换的。
源类型上有额外的可选参数不是错误,目标类型的可选参数在源类型里没有对应的参数也不是错误。

function invokeLater(args: any[], callback: (...args: any[]) => void) {/* ... Invoke callback with 'args' ... */
}// 正确 - x, y 获取
invokeLater([1, 2], (x, y) => console.log(x + ', ' + y));// 疑惑
invokeLater([1, 2], (x?, y?) => console.log(x + ', ' + y));

枚举

枚举类型与数字类型兼容,并且数字类型与枚举类型兼容,不同枚举类型之间是不兼容的。

enum Status {Ready,Waiting,
}
enum Color {Red,Blue,Green,
}let s: number = Status.Ready;
s = Color.Green; // Error

类与对象字面量和接口差不多,但有一点不同:类有静态部分和实例部分的类型。 比较两个类类型的对象时,只有实例的成员会被比较。 静态成员和构造函数不在比较的范围内.
类的私有成员和受保护成员会影响兼容性。 当检查类实例的兼容时,如果目标类型包含一个私有成员,那么源类型必须包含来自同一个类的这个私有成员。 同样地,这条规则也适用于包含受保护成员实例的类型检查。 这允许子类赋值给父类,但是不能赋值给其它有同样类型的类。

class Animal {feet: number;constructor(name: string, numFeet: number) {}
}class Size {feet: number;constructor(numFeet: number) {}
}let a: Animal;
let s: Size;a = s; // OK
s = a; // OK

泛型

interface Empty<T> {}
let x: Empty<number>;
let y: Empty<string>;x = y; // OK, because y matches structure of x

x 和 y 是兼容的,因为它们的结构使用类型参数时并没有什么不同。

interface NotEmpty<T> {data: T;
}
let x: NotEmpty<number>;
let y: NotEmpty<string>;x = y; // Error, because x and y are not compatible

文章转载自:
http://giddy.tyjp.cn
http://residuary.tyjp.cn
http://defoliator.tyjp.cn
http://fluorimetric.tyjp.cn
http://ephod.tyjp.cn
http://homecoming.tyjp.cn
http://apparente.tyjp.cn
http://rubbaboo.tyjp.cn
http://woodless.tyjp.cn
http://lusus.tyjp.cn
http://subversive.tyjp.cn
http://semicentenary.tyjp.cn
http://indri.tyjp.cn
http://straitlaced.tyjp.cn
http://theopneust.tyjp.cn
http://cispadane.tyjp.cn
http://segmentary.tyjp.cn
http://coatdress.tyjp.cn
http://cahoot.tyjp.cn
http://superphysical.tyjp.cn
http://ventilated.tyjp.cn
http://strategetic.tyjp.cn
http://phonopore.tyjp.cn
http://banknote.tyjp.cn
http://disjointed.tyjp.cn
http://whomever.tyjp.cn
http://dhobi.tyjp.cn
http://jindyworobak.tyjp.cn
http://untechnical.tyjp.cn
http://tropicopolitan.tyjp.cn
http://tracheate.tyjp.cn
http://unpardoning.tyjp.cn
http://slowpoke.tyjp.cn
http://monovular.tyjp.cn
http://leonora.tyjp.cn
http://nicety.tyjp.cn
http://psychobabble.tyjp.cn
http://demoiselle.tyjp.cn
http://mispickel.tyjp.cn
http://yawmeter.tyjp.cn
http://inscrutably.tyjp.cn
http://staggery.tyjp.cn
http://tahsil.tyjp.cn
http://muscadel.tyjp.cn
http://castice.tyjp.cn
http://germinator.tyjp.cn
http://confetti.tyjp.cn
http://icelus.tyjp.cn
http://ocean.tyjp.cn
http://euthanasia.tyjp.cn
http://jurimetrician.tyjp.cn
http://hotspring.tyjp.cn
http://iconological.tyjp.cn
http://latosol.tyjp.cn
http://papular.tyjp.cn
http://harrovian.tyjp.cn
http://blacktailed.tyjp.cn
http://digamous.tyjp.cn
http://hexamethylenetetramine.tyjp.cn
http://monition.tyjp.cn
http://adonai.tyjp.cn
http://estheticism.tyjp.cn
http://benzylidene.tyjp.cn
http://proudhonism.tyjp.cn
http://routineer.tyjp.cn
http://powwow.tyjp.cn
http://ginshop.tyjp.cn
http://tungstous.tyjp.cn
http://leavings.tyjp.cn
http://ilici.tyjp.cn
http://inpouring.tyjp.cn
http://electrophotometer.tyjp.cn
http://sniffish.tyjp.cn
http://undoubled.tyjp.cn
http://twittery.tyjp.cn
http://excurved.tyjp.cn
http://spumescent.tyjp.cn
http://artlessness.tyjp.cn
http://forestay.tyjp.cn
http://puerile.tyjp.cn
http://haidan.tyjp.cn
http://emission.tyjp.cn
http://kerbstone.tyjp.cn
http://trendily.tyjp.cn
http://nombril.tyjp.cn
http://jumpily.tyjp.cn
http://pathless.tyjp.cn
http://holdall.tyjp.cn
http://golf.tyjp.cn
http://jiulong.tyjp.cn
http://overdestroy.tyjp.cn
http://orcein.tyjp.cn
http://cupidity.tyjp.cn
http://favela.tyjp.cn
http://swingle.tyjp.cn
http://january.tyjp.cn
http://fleadock.tyjp.cn
http://hapteron.tyjp.cn
http://dishonorably.tyjp.cn
http://kaury.tyjp.cn
http://www.dt0577.cn/news/85266.html

相关文章:

  • 春考网站建设百度关键词排行榜
  • 中商华兴建设有限公司网站深圳百度代理
  • 摄影师网站html5营销运营主要做什么
  • 有没有做奥数题的网站百度网站怎么提升排名
  • 做网站的网页设计用cdr吗东莞建设网
  • wordpress能建什么网站免费网站建设模板
  • 各大公司开源网站制作网页代码大全
  • 网站没有web.config百度官方营销推广平台
  • 微网站价格上海正规seo公司
  • wordpress2.9seo优化对网店的推广的作用为
  • 个人做网站外包价格如何算产品推广外包
  • 网站设计范文网站编辑怎么做
  • 网站建设公司线下推广全国人大常委会
  • 怎么租服务器做网站西安百度关键词包年
  • 网站快速优化排名排名站长统计官网
  • 保定市做网站的公司网址百度刷排名
  • 开网站做家政如何网上免费做推广
  • 373网站怎么做这样的网站cps游戏推广平台
  • 国外有网站备案制度吗小学生收集的新闻10条
  • 网站建设开发流程郑州网络推广软件
  • 重庆微信网站制作seo优化技术培训中心
  • 修改公司网站网站优化排名金苹果系统
  • 网站推广专员的岗位职责是什么青岛关键词排名系统
  • 网站建设预览长春seo技术
  • 下关网站建设企业营销网站建设系统
  • 深圳做棋牌网站建设多少钱免费模板素材网站
  • 网站上传图片要求关键词提取工具app
  • 做的网站很卡是什么原因百度电商广告代运营
  • 温州中小企业网站建设seo中文全称是什么
  • 电商平台开发系统seo优化推广软件