- never类型可以做穷尽性检查。nerver类型表示一个不存在的状态,never类型可以分配给每个类型,但是没有任何类型可以分配给never,除了never本身。
type Animal = 'lion' | 'cat'
function checkAnimal(animal:Animal){
swicth(animal){
case 'lion':
return xxx;
case 'cat':
return xxx;
default:
const other:never = animal;
return other;
}
}
- 函数的类型描述
2.1函数类型表达式
fn:(a:string) => void
//例子
type Greetfunction =(s:string)=>void
function greeter(fn:Greetfunction){
fn('hello world')
}
function printToConsole(s:string):void{
console.log(s);
}
greeter(printToConsole);
2.2调用签名
在js中函数除了可调用之外,函数还可以有属性。但是函数类型表达式的语法无法声明属性,如果想用属性来描述可调用的东西,可以在对象中,写一个调用签名。
type Describablefunction={
description:string;
(someArg:number):boolean
}
function doSomething(fn:Describablefunction){
console.log(fn.description+'returned'+fn(6));
}
function fn1(n:number):boolean{
return !!n;
}
doSomething(fn1);
注意:使用类型签名定义函数类型的时候用的是冒号而不是箭头
2.3构造签名
class Ctor{
s:string;
contructor(s:string){
this.s=s;
}
}
type SomeContructor={
new (s:string):Ctor
}
function fn(ctor:SomeContructor){
return new ctor('hello');
}
const f =fn(Ctor);
console.log(f.s);
2.3调用签名和构造签名结合使用
interface CallOrContructor {
new (s:string):Date;
(n?:number):string;
}
function fn(date:CallOrContructor){
const d = new date('2023-03-29');
const n = date();
}
【信息由网络或者个人提供,如有涉及版权请联系COOY资源网邮箱处理】
© 版权声明
本平台(www.cooy.cn)的一切软件、教程及内容信息仅限用于学习和研究,付费仅为收集整理归类费用;
不得将上述内容用于商业或者非法用途,否则一切后果用户自行承担负责。本平台资源、内容、信息均来自来自用户上传,版权争议及其他问题与本平台无关。
您必须在下载后的24个小时之内从您的电脑或手机中彻底删除上述下载内容,如果您喜欢该程序或内容,请支持正版以获取更好的服务。我们非常重视版权问题,如有侵权请发送邮件至下方邮件(655465@qq.com),敬请谅解!
如发现违法违规内容,请联系下方邮箱举报,我们收到后将会第一时间处理。
THE END
暂无评论内容