TypeScript 素描 - 接口
/*
接口 C#写多了,接口也自然也是理解的。不过TypeScript中的接口与
C#中的还是有些区别的
接口的作用就是为这些类型命名和为你的代码或第三方代码定义契约
*/ //为方法的参数做契约
interface IPersion {
Name: string;
Age: number;
}
function fun6(person: IPersion): void { };
//参数必须满足接口 IPerson 多一个少一个都不行,属性名写错也不
//行 Name 不可以写成 SName
fun6({ Name: "jack", Age: 26, Other: 5 }); //可空属性 ? 比如Name?
//只读属性 readonly 比如 readonly Name; Nmae只会在初始化的时
//候赋值 Arrary类型有个 ReadonlyArray //用接口来描述函数
interface SearchFun {
(source: string, subString: string): boolean;
}
let mySearch: SearchFun;
//签名个数类型必须一致,但名称可以不一致
mySearch = function (mysource: string, mysubString: string) {
let result = mysource.search(mysubString);
return result != -1;
} //索引 除了数字还可以使用字符串做签名,如果同时使用数字和字符
//串做索引,那么数字返回的类型必须是字符串的子类型或者是同类
//型。也就两者的类型需要一致
interface StringArrary {
[index: number]: string;
}
//其实这是多余的
let myArray: StringArrary;
myArray = ["jack", "yuhan"];
myArray[0]; //实现接口,与C#一致了,面向接口的开发的好处相信大家都是知道的
//TypeScript中使用 implements 关键字
class Person implements IPersion {
Name;
Age;
} //扩展接口
interface Shape {
Color: string;
} interface Square extends Shape {
SideLength: number;
} let square = <Square>{};
square.SideLength = 10;
square.Color = "red"; //接口继承类 真是乱-.-
TypeScript 素描 - 接口的更多相关文章
- TypeScript 素描-基础类型
博文读自 TypeScript 官方文档而来,不具有学习性,仅是本人学习时记录以供日后翻阅 ,有学习TypeScript的朋友还请去看更为详细的官方文档 TypeScript官网文档中的基础类型, T ...
- TypeScript入门五:TypeScript的接口
TypeScript接口的基本使用 TypeScript函数类型接口 TypeScript可索引类型接口 TypeScript类类型接口 TypeScript接口与继承 一.TypeScript接口的 ...
- TypeScript之接口类型
Interfaces 作为TypeScript中的核心特色之一,能够让类型检查帮助我们知道一个对象应该有什么,相比我们在编写JavaScript的时候经常遇到函数需要传递参数,可能在编写的时候知道这个 ...
- TypeScript 素描 - 泛型、枚举
/* 泛型,好处多多的功能.不过这里最基本的就不打算说了,仅准备说一些 和C#不同的地方 */ /* 泛型接口 GenericIdentityFn 定义了方法的描述等 identity方法则是它的实现 ...
- TypeScript Interface(接口)
类型检查专注于解析值所具有的"形态",这是TypeScript的核心原则之一.这个有时候被称为"duck typing"或者"structural s ...
- TypeScript 素描 - 模块解析、声明合并
模块解析 模块解析有两种方式 相对方式 也就是以/或 ./或-/开头的,比如import jq from "/jq" 非相对方式 比如 import model from ...
- TypeScript入门-接口
▓▓▓▓▓▓ 大致介绍 在TypeScript里,接口的作用就是为这些类型命名和为你的代码或第三方代码定义契约. ▓▓▓▓▓▓ 接口 例子: function printLabel(labelledO ...
- TypeScript 素描 - 类
本文虽然是学自官方教程而来,但是也融入了自己的理解,而且对官方的例子做了一些修改 /* 类 面向对象编程的一大核心 使用C#.Java进行编程的朋友肯定已经是不能够再熟悉了 TypeScript的类与 ...
- TypeScript 素描-变量声明
博文读自 TypeScript 官方文档而来,不具有学习性,仅是本人学习时记录以供日后翻阅 ,有学习TypeScript的朋友还请去看更为详细的官方文档 /* 变量声明在之前的js中一直是使用var关 ...
随机推荐
- CSS3写折纸
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...
- javascript操作系统检测
function detectOS() { var sUserAgent = navigator.userAgent;console.log(sUserAgent); var isWin = (nav ...
- 【转】 iOS9.2-iOS9.3.3越狱插件清单
以下是iOS9.3.3越狱插件清单 原文地址:http://bbs.feng.com/read-htm-tid-10668605.html 序列 支持与否 插件名称 兼容版本 支持设备 1 是 20 ...
- 用AVFoundation自定义相机拍照
自定义拍照或者录视频的功能,就需要用到AVFoundation框架,目前我只用到了拍照,所以记录下自定义拍照用法,视频用法等用上了再补充,应该是大同小异 demo在这里:https://github. ...
- react-native-vector-icons的简单使用,图片,按钮,标签视图,导航条
ICONS是可以直接使用图片名, 就能加载图片的三方,使用很方便, 你不需要在工程文件夹里塞各种图片, 节省很多空间,下面就来看看怎么使用吧! 1. 首先打开terminal进入到我们的工程文件夹下, ...
- Listview的Item中有CheckBox、Button等的焦点处理
ListView的item布局中有CheckBox.Button等会获取焦点的控件会抢走焦点,造成ListView的item点击事件相应不了. 解决方法:控件设置 android:clickable= ...
- MyBatis中jdbcType和javaType的映射关系
JDBC Type Java Type CHAR String VARCHAR String LONGVARCHAR String NUMERIC java.math.BigDecimal DECIM ...
- ckplayer 如何在PC上完美支持 m3u8播放
使用过ckplayer的同学都知道,相对jwplayer等,它非常的容易配置和使用.功能也是基本满足我们的需求的. 一般情况我们都使用普通的视频格式比如mp4,flv等播放,但如果视频文件过大,会加载 ...
- Python:版本升级
Linux 上安装的python版本是2.6.6,不能满足我运行软件的要求,所以对python进行升级.现在要了解MySQL Fabric,需要使用Python 2.7,所以只能对现有版本进行升级了. ...
- mysql想要别人远程能连接
mysql -u root -pvmware mysql>use mysql; mysql>update user set host = '%' where user = 'root'; ...