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

织梦cms建设企业网站学设计的视频网站

织梦cms建设企业网站,学设计的视频网站,常州seo网站推广,网站是指什么第十一章 与JavaScript互操作 本章讨论在实际开发中如何编写Typescript。有可能你真正把代码从无类型语言向Typescript迁移。也有可能要使用第三方库。 使用类型声明逐步从JavaScript迁移到Typescript使用第三方JavaScript和Typescript 11.1 类型声明 类型声明文件的扩展名…第十一章 与JavaScript互操作 本章讨论在实际开发中如何编写Typescript。有可能你真正把代码从无类型语言向Typescript迁移。也有可能要使用第三方库。 使用类型声明逐步从JavaScript迁移到Typescript使用第三方JavaScript和Typescript 11.1 类型声明 类型声明文件的扩展名为.d.ts。类型声明配合JSDoc注解11.2.3节是无类型的JavaScript代码附加Typescript类型的一种方式。 // 编译时将.d.ts类型声明一同打包declaration: true,tsconfig.json 类型声明的句法与常规的Typescript代码类似不过也有几点区别 类型声明只能包含类型不能有值。这意味着类型声明不能实现函数类对象或变量参数也不难有默认值。 类型声明虽然不能定义值但是可以声明JavaScript代码中定义了某个值此时使用特殊的declare关键字。 类型声明只声明使用方可见的类型。如果某个代码不导出或者是函数体内的局部变量则不为其声明类型。 // a.ts export let a hhaha export let b false let c [1,2]// 没有导出tsc -d a.ts的到a.d.ts export declare let a:string; epoxrt declare let b:boolean;import {Subscriber} from ./Subscriber import {Subscription} from ./Subscription import {PartialObserver,Subscribable,TeardownLogic} from ./typesexport class ObservableT implements SubscribableT{public _isScalar:boolean falseconstructor(subscribe?:(this:ObservableT,Subscriber:SubscriberT)TeardownLogic){if(subscribe){this._subscribe subscribe}}static createT(subscribe?:(subscriber:SubscriberT)TeardownLogic){return new ObservableT(subscribe)} }当我们使用tsc -d 文件名编译上面的代码得到类型声明.d.ts如下 import {Subscriber} from ./Subscriber import {Subscription} from ./Subscription import {PartialObserver,Subscribable,TeardownLogic} from ./typesexport declare class ObservableT implements SubscribableT{//1.public _isScalar:booleanconstructor(subscribe?:(this:ObservableT,Subscriber:SubscriberT)TeardownLogic);static createT(subscribe?:(subscriber:SubscriberT)TeardownLogic):ObservableT// 2. }注意class前面有个declare关键字。在类型声明中虽然不可以真正定义类但是却可以声明.d.ts文件对应的JavaScript文件中定义了指定的类。declare可以理解为一种断言我肯定我写的JavaScrip代码中导出了这个类型的类由于类型声明中不能有具体实现所以这里只保留了声明没有实现的签名 注意.d.ts文件中是.ts文件去掉实现后剩下的内容也就是说.d.ts只有.ts文件里的类型 这个类型声明对其他文件而言没有用因为其他文件可以直接访问.ts而该文件自身就是Typescript源文件。如果你在自己的Typescript应用中使用类型声明就有用了。 如果某个npm包的开发人员想打包信息发布到npm中供Typescript使用有两种选择第一,打包源文件Typescript使用和编译得到的JavaScript文件JavaScript使用第二种提供编译后得到的JavaScript文件和供Typescript用户使用的类型声明。后一种方式所占的文件体积较小而且十分明确。另外后一种还能减少编译应用所用的时间。 类型声明文件有以下作用 其他人在他们的Typescript应用使用你提供的编译好的Typescript代码时TSC会寻找与生成的JavaScript文件对应的.d.ts文件让Typescript知道项目中涉及哪些类型。支持Typescript的代码编辑器会读取.d.ts文件在输入代码的过程中显示有用的提示由于无需重新编译Typescript代码能极大地减少编译时间。 类型声明的作用是告诉Typescript“JavaScript文件中定义了这个我来告诉你他的信息“类型声明描述的是外参环境与包含值的常规声明要区分开而常规的变量声明使用let或const关键字声明变量 借助类型声明可以做到下面几件事 告诉TypescriptJavaScript文件中定义了某个全局变量。假如你在浏览环境中通过脚本定义了Promise或process.env,或许应该使用外参变量声明让Typescript提前知道这一点。定义在项目中任何地方都可以使用的全局类型无须导入就能使用这叫外参类型声明描述通过npm安装的第三方模块外参模块声明 类型声明不管作何用途始终放在脚本模式下的.ts或.d.ts文件中。按约定如果有对应的.js文件类型声明文件使用.d.ts扩展名否则使用.ts扩展名。 类型声明文件的名称没有具体要求例如存储在顶层目录中的types.ts除非内容多到不可控一个类型声明文件中可以有任意多个类型声明。 最后要注意一点在类型声明文件中顶层值要使用declare关键字declare letdeclare functiondeclare class等而顶层类型和接口则不需要。 下面说明每种类型声明。 11.1.1 外参变量声明 外参变量声明让Typescript知道全局变量的存在无须显式导入即可在项目中的任何.ts和.d.ts中使用。 假设你在浏览器中运行nodejs程序某个时刻该程序会检查process.env.NODE_ENV的值为“development”或”production“。运行这个程序。你会看到错误 可以自己定义process.env.NODE_ENV process {env:{NODE_ENV:production} } // 不报错但是有提示declare let process:{env:{NODE_EMV:development|production} } process {env:{NODE_ENV:production} }我们向Typescript声明有个全局对象名为process而且该对象有个属性名为env对属性名下有一个属性名为NODE_ENV。告诉Typescript这些信息之后报错提示就会消失现在可以安全地定义全局对象process。 TSC设置lib Typescript自带一些类型声明用于描述JavaScript标准库包括JavaScript内置的类型例如Array和Promise例如window和document及onmessage职程 11.1.2 外参类型声明 // types.ts type A string 全局可用 11.1.3 外参模块声明 // types.ts declare module test-module {export type name stringlet test:nameexport default test }未完待续
http://www.hkea.cn/news/14300733/

相关文章:

  • 济南市建设工程招标投标协会网站最近的新闻大事20条
  • 外贸网站建设 东莞灰色风格的网站
  • 学校网站建设状况宁波北仑网站网页建设
  • 企业网站建立流程的第一步是什么企业网站开发周期
  • 深圳市罗湖网站建设如何做一个网站的功能吗
  • 淘宝客怎么做直播网站吗亚马逊网站建设与维护方法分析
  • 建设行网站修改电话网站排名优化推广厦门
  • 南昌网站维护网页设计与制作课程内容
  • wordpress 默认主题站点北京企业网站建设推荐
  • 惠州市网站制作有限公司松岗做网站
  • 孝感网站推广广东企业网站seo报价
  • 义乌公司网站建设磐安住房和城乡建设部网站
  • title 网站建设网站建设需要哪些技术
  • 重生北京上大学开网吧做网站的小说广电基础设施建设官方网站
  • 手机网站可以做英文版本吗邮箱域名
  • 到什么网站做专利检索报告什么网站做博客好
  • 安卓手机做网站服务器吗影楼管理系统
  • 企业网站.net沈阳优化网站
  • 网站怎么加关键词做优化外贸优秀网站
  • 淄博网站建设公司羊肉片机网站建设包括备案吗
  • 新网域名搭建网站大连网站建设仟亿
  • 江西建设单位网站做网站标志过程
  • 安徽住房和城乡建设厅网站本溪网站建设
  • 怎么找到做网站的客户营销网站建设规划方案
  • 北京通网站建设价格成都网站建设怎么样
  • 县文化馆网站建设方案学生网站做兼职
  • c 做精品课程网站建立网站
  • 300个吉祥公司取名大全百度提升优化
  • 网站建设建站网易互客做风筝网站
  • 求职网站网页模板下载韩国购物网站