与interface不同,type还可以用来表示其他的类型,比如基本数据类型、元素、并集等 ⏰interface interface 只能表示Object, Function。 不能表示其它类型 ⏰type //【基本类型】type Name =string;//【类型并集&交叉】type PartialPointX ={x: number} type PartialPointY={y: number}//并集type PartialPoint = P...
// 定义一个接口,里面确定要有两个成员,且都是字符串类型 interface Post { title: string // 结尾可以使用逗号分隔,也可以使用分号去分割,还可以省略 content: string } 使用接口 // 使用的时候声明参数是Post类型,里面使用的时候不担心没有值 function printPost (post: Post) { console.log(post.title)...
function fn(e:{target:{value:string}}){ } 1. 2. 3. 使用接口重写 interface parm { target:{ value:string } } function fn(e:parm){ } 1. 2. 3. 4. 5. 6. 7. 8. 可选属性 接口里的属性不全是必须的,即给函数传入的参数对象中只有部分属性赋值了。 interface parm { target:{ value?:...
getUserInfo(); // 错误信息:An argument for 'user' was not provided. getUserInfo({name: "coderwhy"}); // 错误信息:Property 'age' is missing in type '{ name: string; }' getUserInfo({name: "coderwhy", height: 1.88}); // 错误信息:类型不匹配 1. 2. 3. 4. 这样确实可以防止出现错误...
这里我就有点困惑了,因为以前写别的强类型面向对象语言,interface一般都是用来描述高度抽象的行为所以一般情况下只定义方法(即使在语法上可以在interface中定义property,一般也不会这么去做),而property一般都是定义在class这个层面的。 由于没有系统学习过ts(基本就靠以前其它的语言经验拿来就上手了),所以这里请大家给...
functionfunc3(a:number,b:number=10,...rest:number[]):string{return'func1'}func1(100,200,300,400) 接口(interface) 接口,是一种规范、契约,约定对象的结构。 接口是用来约束一个对象的结构,我们要使用这个接口,就要遵循其全部的约定。 接口最直观的体现就是对象应该有哪些成员以及成员的类型都是什么样的...
y: number; } interface Point { // interface x: number; y: number; } function print...
interface Person3 {readonly id: number;name: string;[PropName: string]:any}let p1: Person3 = {id: 1,name:"sss"} 1. 2. 3. 4. 5. 6. 7. 8. 9. 通过接口约束(规范)函数 复制 interface DiscountInterface{(price:number):number}let discount:DiscountInterface =function(price: number): nu...
interface SearchFunc { (source: string, subString: string):boolean; } 对于函数类型的类型检查来说,函数的参数名不需要与接口里定义的名字相匹配。 比如,我们使用下面的代码重写上面的例子: let mySearch: SearchFunc; mySearch=function(src: string, sub: string):boolean{ ...
interfaceSquareConfig{color?:string;width?:number;}functioncreateSquare(config:SquareConfig):{color:string;area:number}{letnewSquare={color:"white",area:100};if(config.color){// Error: Property 'clor' does not exist on type 'SquareConfig'newSquare.color=config.clor;}if(config.width){newSquare...