TypeScript 是由 Google 开发的一种免费开源编程语言。 它是一个开源、跨平台的 Java 超集,具有可以编译为纯 Java 的类型系统,然后在任何浏览器和其他环境中运行。 它使开发人员能够使用一些未来 Java 标准(ECMA6 和 7)的功能。 TypeScript 向 Java 添加了可选的静态类型、类和模块,允许小型 Java 应用程序使用更好的工具并具有更清晰的结构。
类型的作用
Type 扩展了 Java 的语法,因此任何现有的 Java 程序都可以在 Type 下运行而无需更改。 Type是为小型应用程序的开发而设计的,编译时形成Java,以保证兼容性。
Type 支持将类型信息添加到现有 Java 库的头文件,从而扩展了其对 jQuery、MongoDB、Node.js 和 D3.js 等流行库的用途。
结合Google开发的开源代码编辑器VisualStudioCode,使用TypeScript开发项目有以下优点:
可以使用最新的ES2017语言特性。
非常精确的代码提示。
编辑代码时进行动态错误检测可以防止明显的错误类型编程typescript,例如错误输入函数名称。
非常精确的代码构建能力。
非常方便的断点调试功能。
编辑器集成调试功能。
句子特征
课程
套接字接口
模块 模块
类型注释 类型注释
编译时类型检查 编译时类型检查
Type中的几种基本类型:
boolean 是布尔值类型,例如letisDone:Boolean=false
number是数字类型,如letdecimal:number=6;
string是字符串类型,如letcolor:string='blue'
形参类型,如letlist:number[]=[1,2,3]
元组类型,如letx:[string,number]=["hello",10]
枚举类型,如 enumColor{Red,Green,Blue};letc:Color=Color.Green
any 为任意类型,如 letnotSure:any=4;notSure="maybeastringinstead"
void 为空类型,如letunusable:void=undefined
空且未定义
never 表示没有值的类型,例如 functionerror(message:string):never{thrownewError(message);}
多种类型可以用|分隔,例如number|string表示可以是数字或者字符串类型
箭头函数(类似于 C# 中的 Lambda 表达式)
插座(接口)
下面介绍一些常见的socket方式:
//定义一个具有颜色和宽度属性的对象
接口超级配置{
颜色: 字符串;
宽度:数量;
//readonly表示只读,其属性不能重新参数化
接口点{
只读x:数字;
只读:数字;
//? 表示该属性是可选的,
//[propName:string]:any 表示允许使用obj[xxx]等动态属性
接口SquareConfig{
颜色?:字符串;
宽度?:数量;
[propName:字符串]:任意;
// 函数套接字
接口搜索函数{
(来源:字符串,子字符串:字符串):布尔值;
事实上,Type的socket有很多种表示方式。 详细信息请参考这里:TypeHankbook-Interfaces
功能
以下是几种功能套接字的定义形式:
//普通函数
函数添加(a:数字,b:数字):数字{
返回+b;
//函数参数
函数 readFile(文件:字符串,回调:(err:错误|null,数据:缓冲区)=>void){
FS。 readFile(文件,回调);
//通过type语句定义类型
typeCallbackFunction=(err:Error|null,data:Buffer)=>void;
函数 readFile(文件:字符串,回调:CallbackFunction){
FS。 readFile(文件,回调);
//通过接口语句定义类型
接口回调函数{
(错误:错误|空,数据:缓冲区):无效;
函数 readFile(文件:字符串,回调:CallbackFunction){
FS。 readFile(文件,回调);
以上定义方法都有细微的差别,仍然需要深入Type实践后合理使用。 详细信息可以在这里找到:TypeHandbook-Functions
种类
Type的类定义与Java相同,减少了public、private、protected、readonly等访问控制修饰符:
类人{
受保护的名称:字符串;
构造函数(名称:字符串){
this.name=名称;
类Employee扩展Person{
私人部门:字符串;
构造函数(名称:字符串类型编程typescript,部门:字符串){
超级(名称);
this.部门=部门;
公共 getElevatorPitch(){
return `你好,我的名字是 ${this.name},我的工作是 ${this.department}。`;
需要注意的是,这个修饰符只在Type程序中有效。 如果直接使用Java,则可以在类外部访问声明为private或protected的类成员,也可以更改声明为readonly的成员变量。
如果没有指定访问控制关键字,则默认为 public。
子类
Type的类库和socket具有很强的类型检测能力,同时又兼有Java语言的动态特性。 下面是一个使用类库的简单示例:
函数身份(arg:T):T {
返回参数;
constmap = newMap();
地图.set('a',123);
函数睡眠(毫秒:数字):承诺{
返回 newPromise((解决,拒绝)=>{
setTimeout(()=>解析(毫秒),毫秒);
});
Type2.0之后,减少了很多与类库相关的句型,比如KextendskeyofT,对于初学者来说不太容易理解,一般情况下可能用不到。 详细信息请参考这里:TypeHandbook-Generics
以上就是Type对比Java的核心内容。